Disambiguate RBAC interfaces. Add Access.HasGrant.

The identifer method Name() is too ambiguous among Permission and Role
interfaces. One could pass a Role as a Permission, since Role provides a
superset of Permission's methods. Using Perm() for the Permission name
and Role() for the Role name to enforce proper usage.

Also added Access.HasGrant, which tests for a role grant to a principal
on a resource or its containers.