Commit permissions API specification and default implementation by me, @olee and @AbrarSyed

Patches:
CommandHandler: Redirect all canCommandSenderUseCommand calls to a forge equivalent, which is permissions-aware
EntityPlayerMP: Allow all commands to be used, to let the permissions API handle the permission checks
NetHandlerPlayServer: Allow command blocks to be controlled by permissions

This commit introduces a new way to handle command registrations. A new permissions-aware method to register commands is in CommandHandlerForge.