SERVER-8144 Authenticating 2 users on a db should replace the 1st's privileges with the 2nd's.
SERVER-7122 SERVER-8283 Merge serverAdmin role into clusterAdmin

Conflicts:
	src/mongo/db/auth/authorization_manager.cpp
SERVER-8802 SERVER-8814 Don't build indexes from inserts into collection names ending in ".system.indexes"

Conflicts:
	src/mongo/db/cloner.cpp
	src/mongo/db/oplog.cpp
	src/mongo/db/pdfile.cpp
	src/mongo/db/repl/rs_sync.cpp
	src/mongo/tools/dump.cpp
	src/mongo/tools/restore.cpp
SERVER-8597 The presence of invalid roles shouldn't prevent privilege acquisition from valid roles
SERVER-10596 Globalize formerly per-thread Pool of JS Scopes

This ensures that the limit of 10 pooled scopes is actually enforced.
With a per-thread Pool, long-lived connections could cause very high
memory usage (both real and virtual) even if they haven't used JS in a
long time.

Manually fixed backport of commit 73841f7a1ec1322d96179eb2712ab438f56add00

Conflicts:
	jstests/auth/js_scope_leak.js
	src/mongo/db/auth/auth_external_state.h
	src/mongo/db/auth/auth_external_state_d.cpp
	src/mongo/db/auth/auth_external_state_d.h
	src/mongo/db/auth/auth_external_state_s.cpp
	src/mongo/db/auth/auth_external_state_s.h
	src/mongo/db/auth/authorization_session.cpp
	src/mongo/db/auth/authorization_session.h
	src/mongo/db/commands/group.cpp
	src/mongo/db/matcher/expression_where.cpp
	src/mongo/scripting/engine.cpp

Conflicts:
	src/mongo/db/commands/mr.cpp
	src/mongo/db/matcher.cpp
SERVER-8217 Write test for id logging
SERVER-8625 Allow dbAdmins to view index definitions
SERVER-8540 Add test that non-dbAdmins can't read system.profile
SERVER-8540 Only dbAdmin should be able to read system.profile
SERVER-8623 Don't allow renameCollection to bypass auth checks on system namespaces
SERVER-8217 Fix regex for timestamp
SERVER-8217 Better fix for regex
SERVER-8217 Write test for id logging

Make tests allocate port dynamically
SERVER-9983 Test verifying that internal user privileges do not mask those of similarly named users.