Create a new PermissionGranter class to perform invocations of granter methods.

Also validate that all arguments in a granter method are provided if the granter is to be invoked.
Keep granter methods indexed by the action(s) they apply to.
Make sure granters are only called if necessary.