SERVER-11875 Fix for compatibility with old config servers
SERVER-10159 Use StringMap to avoid string copies when finding a collection
SERVER-10159 Only do rematch for positional data when necessary
SERVER-10564 enable the plan cache

Signed-off-by: Matt Kangas <matt.kangas@mongodb.com>
SERVER-12241 Combine internal action types into one
SERVER-12243 SERVER-12239 Remove dead authz code
SERVER-8871 derive plan cache key from query, sort and projection
SERVER-11841 Move Win32 LoadStore and Interlocked specializations to namespace scope
SERVER-11871 Fix assert in Page::Initialize.

This is a clean backport from this commit from V8:
https://code.google.com/p/v8/source/detail?r=13896
SERVER-10026 reenable geo_full.js
SERVER-12119 Add new command to allow applications to append notes to the oplog
SERVER-12139 get rid of verbose log line in debug sharding
SERVER-12139 allow BSONElement parsing for single-pass parse speedup
SERVER-12139 refactor bulk write op processing in batch write ops

Pushes bulk writes under a single write lock acquisition, cleanup of
preprocessing.
SERVER-12178 Make sure to take distributed ns lock when performing orphan cleanup
SERVER-12064 Atomic operations for gcc non-Intel architectures

Add support for non-Intel architectures by using gcc builtins where
possible, but only on non-Intel builds. This permits builds to continue
to work on Intel architectures even with older gcc versions that do not
have the builtins.

atomic_intrinsics_gcc.h contains non-portable Intel assembly, so move it
to atomic_intrinsics_gcc_intel.h and add an
atomic_intrinsics_gcc_generic.h equivalent that uses only modern gcc
builtins.

Adjust atomic_intrinsics.h to use atomic_intrinsics_gcc_intel.h in the
Intel case, and atomic_instrinsics_gcc_generic.h in an additional
"otherwise" case.

This does not change behaviour or compatibility in the common IA-32 and
x86_64 cases. The previously existing code will continue to be used in
these cases. An older gcc without the modern gcc builtins will continue
to be able to build on these architectures because the previously
existing assembly will be used.

This does make this code fully portable to any architecture supported by
a modern gcc, since the new, generic code will be used in this case.
SERVER-12065 Support ARM and AArch64 builds

Detect platforms that define __arm__ and __aarch64__ as 32-bit and
64-bit platforms respectively.
SERVER-11961 Make names of the direct and indirect privileges and roles fields consistent in usersInfo and rolesInfo