Query all external groups for internal group memberships

When asking for the known groups a user belongs to they may belong
to an internal group by way of membership in a non-internal group,
such as LDAP. Cache in memory the complete list of any non-internal
group UUIDs used as members of an internal group. These must get
checked for membership before completing the known group data from
the internal backend.

Change-Id: I10aef9f185915771deb58f4f180818c08e784ea3
4 files changed