SERVER-7122 Make copydb not work with auth on mongos

Conflicts:
	src/mongo/db/cloner.cpp
	src/mongo/db/commands.h
	src/mongo/s/commands_public.cpp
SERVER-8938 Remove noauth global from code, move into AuthorizationManager

Conflicts:
	src/mongo/db/dbcommands.cpp
	src/mongo/s/d_migrate.cpp
	src/mongo/s/shard.cpp
SERVER-9029 Add more informative log message when building unique index on system.users fails

Conflicts:
	src/mongo/db/auth/auth_index_d.cpp
fix authorization_manager_test build
Do less string copies when constructing a PrincipalName
SERVER-9518 Initial implementation of RoleGraph data structures

Conflicts:
	src/mongo/base/error_codes.err
Update comments in AuthorizationManager

Conflicts:
	src/mongo/db/auth/authorization_manager.cpp
SERVER-9518 Initial implementation of RoleGraph data structures

Fix build error
SERVER-8471 Remove Command::requiresAuth

Conflicts:
	src/mongo/client/distlock_test.cpp
	src/mongo/db/cloner.cpp
	src/mongo/db/commands/authentication_commands.cpp
	src/mongo/db/commands/authentication_commands.h
	src/mongo/db/commands/connection_status.cpp
	src/mongo/db/commands/hashcmd.cpp
	src/mongo/db/commands/touch.cpp
	src/mongo/db/compact.cpp
	src/mongo/db/dbcommands.cpp
	src/mongo/db/dbcommands_admin.cpp
	src/mongo/db/dbcommands_generic.cpp
	src/mongo/s/commands_admin.cpp
Split AuthorizationManager into 2 classes: AuthorizationManager and AuthorizationSession.

Conflicts:
	src/mongo/db/auth/authorization_manager.cpp
	src/mongo/db/auth/authorization_manager.h
	src/mongo/db/client_basic.cpp
	src/mongo/db/commands.cpp
	src/mongo/db/commands/apply_ops.cpp
	src/mongo/db/commands/cpuprofile.cpp
	src/mongo/db/compact.cpp
	src/mongo/db/db.cpp
	src/mongo/db/dbcommands_admin.cpp
	src/mongo/db/driverHelpers.cpp
	src/mongo/db/index.cpp
	src/mongo/db/instance.cpp
	src/mongo/db/oplogreader.cpp
	src/mongo/db/pdfile.cpp
	src/mongo/db/range_deleter_db_env.cpp
	src/mongo/db/repl/replset_commands.cpp
	src/mongo/s/commands_public.cpp
	src/mongo/s/d_migrate.cpp
	src/mongo/s/s_only.cpp

Conflicts:
	src/mongo/db/auth/authorization_manager.cpp
Clean up includes of authorization headers

Conflicts:
	src/mongo/db/commands.cpp
	src/mongo/db/commands/cpuprofile.cpp
	src/mongo/db/compact.cpp
	src/mongo/db/dbcommands_admin.cpp
	src/mongo/db/driverHelpers.cpp
	src/mongo/db/index.cpp
Rename AuthExternalState to AuthSessionExternalState

Conflicts:
	src/mongo/db/auth/SConscript
	src/mongo/db/auth/auth_session_external_state.cpp
	src/mongo/db/auth/auth_session_external_state_d.cpp
	src/mongo/db/auth/auth_session_external_state_s.cpp

Conflicts:
	src/mongo/db/auth/auth_session_external_state_d.cpp
	src/mongo/db/auth/auth_session_external_state_s.cpp
SERVER-9518 Initial implementation of new User class
SERVER-9518 Small change to comment
Rename PrincipalName to UserName

Conflicts:
	src/mongo/client/sasl_client_authenticate_impl.cpp
	src/mongo/db/auth/authorization_session_test.cpp
	src/mongo/scripting/sm_db.cpp
Add AuthGlobalExternalState

Conflicts:
	src/mongo/db/auth/SConscript
Set up a single global AuthorizationManager in mongos and mongod

Conflicts:
	src/mongo/db/db.cpp
	src/mongo/s/server.cpp
Fix assert code
Rename Auth[Global,Session]ExternalState

Conflicts:
	src/mongo/db/auth/SConscript
	src/mongo/db/auth/authz_session_external_state.cpp
	src/mongo/db/auth/authz_session_external_state_d.cpp
	src/mongo/db/auth/authz_session_external_state_s.cpp
Add pointer to AuthorizationManager to AuthzSessionExternalState