contact: split test.ml into test_contact.ml + runner (E600/E605)
Move the test functions into a Test_contact module exposing a [suite]
value, and reduce test.ml to the single Alcotest.run call. This fixes
both "missing test_contact.ml" (E605) and the "Alcotest.run only in
test.ml" (E600) requirements.