Added support for removing members from groups and cycle detection.

**This commit add support for:**
* Removing users from groups.
* Removing groups from parent groups.
* Throwing an IllegalArgumentException when a cycle amongst groups is created.
* Throwing an IllegalArgumentException when adding a group to the “@all” group.