SERVER-1891 Add hook for auditing access control checks for commands.

Conflicts:
	src/mongo/SConscript
	src/mongo/db/auth/action_types.txt
	src/mongo/db/commands.cpp
SERVER-6246 Forbid direct inserts and updates to system.users collections when auth is enabled

Conflicts:
	jstests/auth/basic_role_auth.js
	src/mongo/db/auth/authorization_session.cpp
SERVER-9518 Function to initialize User cache from V1 user documents.
SERVER-1891 Consolidate auth failure/success behavior in authenticate command, for easier logging.

Conflicts:
	src/mongo/db/commands/authentication_commands.h
SERVER-9518 Implement functions in mongos that are necessary for building up User cache from v1 user docs
Fully rebuild User cache on all user modifications. SERVER-9518

Conflicts:
	src/mongo/db/commands/user_management_commands.cpp
SERVER-9518 Catch exceptions in ExternalState functions

Conflicts:
	src/mongo/db/auth/authz_manager_external_state_d.cpp
SERVER-9518 Correct spelling of initialize
SERVER-9518 Remove implicit privilege acquisition member from Principal class
SERVER-9518 Separate cases that want to automatically acquire privileges when adding an authenticated principal from those that do not.

Conflicts:
	src/mongo/db/dbwebserver.cpp
SERVER-1891 Add hooks to audit authentications using MONGODB-CR and MONGODB-X509.

Conflicts:
	src/mongo/db/audit.h
SERVER-9518 Use User cache to get credential information for authentication check
SERVER-9518 Add UserSet class to eventually replace PrincipalSet
SERVER-9518 Change internalSecurity to store a User object
SERVER-9518 Fix getAllV1PrivilegeDocsForDB in mongod by using the proper namespace for system.users
SERVER-9518 Fix mongos implementation of functions to get database names and user objs for a database
SERVER-9518 Don't override internal security user if there's a user doc with the same name

Conflicts:
	src/mongo/db/commands/user_management_commands.cpp
Revert "SERVER-9518 Fix getAllV1PrivilegeDocsForDB in mongod by using the proper namespace for system.users"

This reverts commit c5afca5be18c26faeb7a8c0ca6ad8281d7dc376c.
SERVER-9518 Remove UserName argument from grantInternalAuthorization

Conflicts:
	src/mongo/db/index_rebuilder.cpp
	src/mongo/db/range_deleter_db_env.cpp
	src/mongo/db/repl/write_concern.cpp
	src/mongo/db/ttl.cpp
SERVER-6246 Add removeUsers command

Conflicts:
	src/mongo/db/commands/user_management_commands.cpp