use user SecurityInfo for permissions throughout (to aid with OnBehalfOf functionality)
Documentation and simplification
Added some comments
Updated comments
Use the user ID instead of the user object itself (to support OnBehalfOf)
 Added unit test for removing user from usersgroup and validating second level cache is invalidated correctly
Additional code to the DeleteEntryEventListener to delete orphaned Permissions and EntitiesGroup associations when an entity is deleted. (djsmith)