Implement role.grant(), add tests, misc renames.