Permissions API

Permissions/Groups API specification, minecraft/forge patches and default implementation by me and @AbrarSyed
Bit of a note, your naming SUCK, seriously, 'hasAccess', 'canUse', simple, the 'CommandSender' is obvious because the parameter is a command sender, and 'Command' is obvious because the command paramter... -.-