Synchronise Lookup groups.
This causes Lookup groups and their members to be synchronised with groups in Google. As for people, there are various configuration options to control which groups to synchronise, and enforce limits on the number of changes the script will perform.
The group name and email in Google are based on the Lookup groupID and groupName, noting that the email is the group's unique identifier in Google:
email = {groupID}@{groups_domain} name = {groupName}@groups.lookup.cam.ac.uk
where groups_domain is a configurable secondary domain or domain alias for groups in Google.
The rationale for this choice is that it will allow for easier searching by Lookup groupID and groupName (assuming that searches operate from the start of these fields), while using a separate namespace for group identifiers to avoid possible conflicts with users and groups from other sources.
Note: The main sync.py script has become quite long, and could probably use refactoring, but keeping it as it is for now to make it easier to diff.
Closes #10 (closed)