Feature/role entity

Squashed and cleaned version of bjyoungblood/BjyAuthorize#62

Ping @tomphp for review