SERVER-7982 Upgrade indexes on system.users collections when starting up / opening a database.

Conflicts:
	src/mongo/db/database.cpp
	src/mongo/db/pdfile.cpp
SERVER-7572 Remove doauth argument from Client::Context

Conflicts:
	src/mongo/db/client.cpp
	src/mongo/db/client.h
	src/mongo/db/cloner.cpp
	src/mongo/db/commands/mr.cpp
	src/mongo/db/dbcommands.cpp
	src/mongo/db/dbhelpers.cpp
	src/mongo/db/dbhelpers.h
	src/mongo/db/index_rebuilder.cpp
	src/mongo/db/introspect.cpp
	src/mongo/db/oplog.cpp
	src/mongo/db/repl.cpp
	src/mongo/db/repl/rs_sync.cpp
	src/mongo/db/restapi.cpp
SERVER-7572 SERVER-7122 Add ensureIndex and dropIndexes to dbAdmin role
SERVER-7572 Remove almost all remaining references to AuthenticationInfo

Conflicts:
	src/mongo/db/instance.cpp
	src/mongo/dbtests/querytests.cpp
Change auth data structures to use Apache license
SERVER-7091 Iterator over authenticated principal names in AuthorizationManager.
Make PrincipalSet::NameIterator::get() valid between the first calls to more() and next()

This makes get() invalid after calling next() but before calling more()
SERVER-7125 Implicit privilege acquisition.

With this patch, a user from one databases granted privileges in another
database automatically acquires the privileges on the latter database when
attempting to perform operations thereon.
SERVER-6860 Assertion: 13548:BufBuilder grow() > 64MB when trying to profile a huge document

Changed objsize() to size()

Conflicts:
	src/mongo/db/client.cpp
	src/mongo/db/introspect.cpp
SERVER-7572 Make profiler record user names from AuthorizationManager

Conflicts:
	src/mongo/db/introspect.cpp
SERVER-7572 Remove AuthenticationInfo

Conflicts:
	src/mongo/client/authentication_table.h
	src/mongo/client/authentication_table_client.cpp
	src/mongo/client/authentication_table_common.cpp
	src/mongo/client/authentication_table_server.cpp
	src/mongo/db/client.h
	src/mongo/db/security.cpp
	src/mongo/s/security.cpp
SERVER-7572 Remove includes of security header files

Conflicts:
	src/mongo/db/client.cpp
	src/mongo/db/client.h
	src/mongo/db/commands/pipeline_command.cpp
	src/mongo/db/commands/server_status.h
	src/mongo/db/dbcommands.cpp
	src/mongo/db/dbcommands_generic.cpp
	src/mongo/db/dbwebserver.cpp
	src/mongo/db/instance.cpp
	src/mongo/db/instance.h
	src/mongo/db/repl/heartbeat.cpp
	src/mongo/s/shardconnection.cpp
SERVER-7572 Restructure security files

Conflicts:
	src/mongo/SConscript
	src/mongo/db/auth/security_key.cpp
	src/mongo/db/auth/security_key.h
	src/mongo/db/commands/authentication_commands.cpp
	src/mongo/db/security.cpp
	src/mongo/db/security_common.h
	src/mongo/s/security.cpp
SERVER-7572 SERVER-7122 Remove oldRead and oldWrite ActionTypes
SERVER-7572 Fix compile by removing include of deleted-file from tool.h

Conflicts:
	src/mongo/tools/tool.h
SERVER-7572 Cache if admin user exists

Conflicts:
	src/mongo/db/auth/auth_external_state_server_common.cpp
SERVER-7119 Make it possible to disable compatibility-form privilege documents via setParameter.
SERVER-7122 Grant killCursors to serverAdmin role
SERVER-7122 Grant cloneCollectionLocalSource (used by renameCollection) to dbAdmin role
SERVER-7122 Change replica set commands to be part of clusterAdmin, not serverAdmin role