Feature/nested groups

In some environments we need to be able to authenticate users in groups that are a part of other groups. The group name won't show up on the memberOf in a users object. These commits make sure to check the users group if they belong to some of the allowed_groups and so on in a recursive matter.