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.