Add intersection to GroupMembership

Support slower group backends by allowing a lookup of a lot of
groups at once to use intersection(). This method signature allows
the backend to filter the input query set and return the subset of
groups that the user is a member of.

Using a batch style interface can decrease latency when resolving
a large number of external groups identified through the internal
group system's nested includes feature.

Change-Id: I6926a3373589f439c8d694d36cdbe5fa8396a040
4 files changed