Treat users and groups as distinct concepts (extended)

(This consolidates #529 and #533.)

To make it easier to reason about and document the new security behavior, this PR splits roles into users and groups.

* Users (but not groups) can be given authentication information (sources).
* Groups (but not users) can be used to cascade privileges to other groups and users.

Where the code does not or cannot distinguish between users and groups, I continue to refer to roles, but the user interface is constrained to users and groups.

There are 3 projects impacted by this change:
* riak (branch `jrd-security-role-bifurcation`) basho/riak#489
* riak_core (branch `jrd-security-grant-namespace`)
* riak_test (branch `jrd-security-role-bifurcation`) basho/riak_test#538

All should be merged at the same time.

/cc @Vagabond