Add support for group-based access control.
This patch adds support for a group file ".git/info/group"
containing a mapping from group names to member users.
Note that the first listed member of a group gets full
access and the following basic access. Users not listed
get no access. If multiple users need full access, this
can be achieved by having multiple entries for the group.
Also cleans up the access level handling code somewhat
by introducing an enum AccessLevel.