SERVER-8328 Make naming for roles consistent
SERVER-9649 Make writeBacksQueued be granted by clusterAdmin
SERVER-9983 Do not needlessly lock when looking up privileges for the __system@local user.

Uncorrected, this can cause replica set heartbeats to stall behind operations
that hold the read lock for a long time.
SERVER-8486 prevent empty dbnames in command params from crashing auth'd mongod

The crux of the issue is that we don't do command param checking until after
we've set up auth, but for certain commands we need their params to set up auth.
 This might be fixed/avoided if we had a more formalized structure for
sanitizing input to commands.

Conflicts:
	src/mongo/db/dbcommands.cpp
SERVER-8527 Do not try to read the non-existent "$external" database during privilege acquisition.

It is the attempt to acquire privileges stored in "$external.system.users" that is causing the
the DatabaseHolder to construct a Database object for the non-existent "$external" database during
normal operation.  This change aleviates that on the acquire privileges code path, without fixing
the more general problem of creating database objects for illegal database names.  That problem
is far stickier, and this limited solution ameliorates the "can't add shards" symptom.
SERVER-9111 Do not try to find user documents in $CLUSTER or $SERVER pseudodatabases.