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.