SERVER-6207 protect printWindowsStackTrace() with critical section

Use SimpleMutex::scoped_lock to make printWindowsStackTrace() run in
only one thread at a time.
SERVER-6881 Prefer not to sync from hidden nodes
SERVER-7031 don't shut down in Windows on CTRL_LOGOFF_EVENT

Versions of Windows prior to Windows Vista send a CTRL_LOGOFF_EVENT
to services (at the handler set by SetConsoleCtrlHandler) when the
interactive user logs off.  Return FALSE from this notification and
don't run consoleTerminate().
SERVER-7045 check all extents in validate command, report results

Move the Extent::validates() routine from pdfile.h to pdfile.cpp, make
it return messages for errors it finds, call it for every extent instead
of just for the first extent.  Check extent DiskLoc against 'myLoc'.
SERVER-7289 add inexpensive tests to validate command

Checks added to the validate command:
1) The 'xprev' pointer in each extent in the extent list should point
   to the previous extent, or be null for the first extent
2) The 'lastExtent' pointer in NamespaceDetails should point to the last extent
3) If an exception is thrown while counting extents, identify the failing extent
4) If an exception is thrown while counting extents, report the count
5) If an exception is thrown while counting extents, the first extent should be
   validated and the check for 'xprev' in the first extent being null should be done
6) If an invalid signature is found in an extent, report the value found and
   identify the extent
7) The "self-pointer" 'myLoc' in an extent should be validated
8) The extent size should be compared with Extent::minSize(), not zero
SERVER-7111 DBClientReplicaSet::connect should not assert if primary is down but secondaries are available
SERVER-7190 Make mongodump metadata.json proper json
SERVER-7204 - reduce spam in balancer shard selection log() to LOG(1)
SERVER-7253 use macro for snprintf on Windows instead of function pointer

Call _snprintf on Windows or snprintf on other platforms directly instead
of through a statically initialized function pointer.  Windows code was
calling sprintf_s, but _snprintf works fine and is already used in other
places in the code.
SERVER-7302 Add spidermonkey to third-party-notices file
SERVER-7352 do not try to exit cleanly in Windows exception handler

In Windows, exit after an access violation the same way we exit on other
platforms after a segfault; with ::_exit(EXIT_ABRUPT).
SERVER-7369 WBL too verbose when calling gle
SERVER-7378 Prevent WRITETODATAFILES and FlushViewOfFile from running at the same time

Prevent errors on Azure Storage drives that occur when a memory-mapped
data file is modified in memory while it is being flushed to disk with
FlushViewOfFile.  Use a SimpleMutex (Critical Section on Windows) to
prevent these two routines from running at the same time.
SERVER-7408 Correctly handle $skip and $limit in sharded agg

This bug only comes up if the first $skip or $limit precedes the first
$sort or $limit. This is very rare, but should still be handled
correctly.
SERVER-7410 Fix SYSLIBDEPS functionality

The previous implementation was not recursively following the LIBDEPS hierarchy, looking for SYSLIBDEPS
to add.  Instead, it was trying to walk a hierachy like LIBDEPS rooted in the SYSLIBDEPS variable.  This
isn't really a meaningful behavior, since SYSLIBDEPS always list system libraries, which are always leaf
nodes in the dependency graph for our build system.
SERVER-7443 - make sure writeback ids are in order

Conflicts:
	src/mongo/s/d_writeback.h
SERVER-7484 zero results should not trigger error w/ returnPartial
SERVER-7491: Correctly generate projections for subfields of _id

This requires special casing due to SERVER-7502
SERVER-7501 Build indexes in the foreground on non-primaries
SERVER-1887 make db.coll.dropIndex() work with name or key object

Remove the fixup of the user's index specification that was converting
it into a default-style index name.  Adjust comments in code and help text
to describe how to use db.collectionName.dropIndex().