refactored role_control class for readability

Hey Ed, I had trouble reading the RoleQuery so attempted a refactor. I think it's a little clearer now but may have misnamed some variables, method names, etc.


I am explicitly resetting the `@actor_roles_query` in the build call to reset the cached instance variable. Pretty sure this would avoid any issue of incorrect reference to a previous actors role_query.