Added additional custom matchers

Added new custom matchers for testing classes for a protected
constructor and testing for methods that are protected. This includes
unit tests to make sure these custom matchers are functioning correctly.
Allow UserGroup to contain set of users

Modify the UserGroup bean to allow it to contain a set of users that are
part of the group.
Allow User to contain set of user groups

Modify the User bean to allow it to contain a set of user groups in
which the user is a member.
Updated comments within DocumentTest
Added containsSameInstance() matcher

Added containsSameInstance() matcher, which is used to confirm that a
set contains the same instance provided to the matcher.
Implemented addUserToUserGroup()

Implemented addUserToUserGroup(), which is used to add a user to a user
group. This updates both the user and user group.

The existing cloneUser() and cloneUserGroup() methods have been updated
so that the user/group relationships are maintained for the clones.