Group service

This merge adds GroupService and RemoteGroupService classes to handled requests for the list of all groups and of a user's groups.  Some non-trivial refactoring was involved.