Fixed and refactored role checks

Role checks will now throw an error if called with no arguments.  The role check methods were also refactored to greatly eliminate the duplicate code.
Updated distribution files