Add groups to server

I really like the idea of splitting the test infrastructure out into multiple files here because otherwise ``test_server.py`` is going to get really big. I also like to keep a 1-to-1 mapping between modules and unittests for those modules though so probably the split out files should have names like ``base_contacts_tests`` and not ``test_XXX`` so that it's clear which are helpers and which are tests for particular modules. I think we should also split the contacts test utilities out if we're splitting the groups ones out.

Happy for this reshuffling to happen in a separate PR if you prefer.