Added support for looking up members of groups.
There's now functions for the following:
- Find all of the direct members of a group, as well as requested attributes of those members.
- Find all of the direct members of multiple groups, as well as requested attributes of those members.
- Find all of the members of a group recursively, as well as requested attributes of those members. This can iterate downwards through nested groups to find all of the members of a group, both direct and indirect through groups that are direct members. There are options to specify a maximum depth, as well as an option to flatten the response.
- Find all of the members of multiple groups recursively, as well as requested attributes of those members. This can iterate downwards through nested groups to find all of the members the groups, both direct and indirect through groups that are direct members. There are options to specify a maximum depth.
For all of these, members will be cast to the most appropriate object type (e.g. ADUser or ADGroup) in the response, making it easy to tell what types the members are.