SERVER-1423 Global/Flush S acquisitions should set different policy

Global S-mode should set a compatible-first policy in order to allow reads
to happen even if there are writers which might be blocked.
SERVER-16067 Split new lock acquisition and conversion into two methods

This makes it clear where we do acquisitions and conversions and we can do
less work and decision making while holding the Lock Manager's bucket
mutex.
SERVER-16138: make sure inserts to oplogs update highest value seen
SERVER-16136 fix drop index errmsg
SERVER-16032 Don't create a new OperationContext for starting master/slave
SERVER-15357 Require GCC-4.8.1, clang-3.4 (or Apple XCode 5.1.1), or MSVC 12 Update 2 or better
SERVER-16149 do not report voting "yea" if 0 votes
SERVER-16158 make maxSyncSourceLagSecs.js resilient against incorrect primary being elected
SERVER-16053 shell retries using $explain if explain cmd not found on a shard

Also adds multi-version test for explain.
SERVER-16147: do not retry initial sync forever
SERVER-16117 do not prefetch a not yet created Database
SERVER-16016 Fix storage_rocks_record_store_test

Signed-off-by: Benety Goh <benety@mongodb.com>
SERVER-16162: check for '.' prefixed collection names everywhere
SERVER-13635 fix registerStorageEngine to take ownership of and free factory
SERVER-8514 return error on invalid count query on empty collection

Closes #783

Signed-off-by: Benety Goh <benety@mongodb.com>
SERVER-14062 Remove extra creations of OperationContextImpl in the sharding dbtests
SERVER-16096: Add test case for locker perf
SERVER-16096: Use explicit masking in ResourceId instead of union/bitfields

Also pass ResourceId by value instead of by reference and use static const for
_numLockBuckets to avoid division.
SERVER-15474: Move audit message up and out of MMAPv1 layer
SERVER-16057 mongo::profile() shouldn't reuse BufBuilder