SERVER-7174: cleanup tests, + use assert.docEq for doc compares
SERVER-10085 do not hold bgsync mutex while waiting for the network
SERVER-10137 sort1.js can't use sh.stopBalancer without a db
SERVER-7175 Deduplicate entry stream and account updates properly.
SERVER-7174 $setOnInsert is syntactic sugar for a contextual $set.
SERVER-7175: only use matched field when found
SERVER-7175: allow enabling new update framework at runtime
SERVER-10074 Fix compiler warning in rotatable_file_writer_test for win32.
SERVER-9195 Add missing SSL cmdline parameters to the shell
SERVER-9038 Add "enableExperimentalWriteCommands" mongod ServerParameter
SERVER-7174 Fix previous commit of $setOnInsert.
SERVER-10026 fetch limit skip or
SERVER-9740 Add checkAuthForCommand method to all commands and use that for auth checking from now on
SERVER-9740 Make all the CRUD checkAuthFor* methods take in all the information about the operation.
SERVER-7889 change comments to fix api docs

Change the documented exception thrown by all instances of chk() from
UserException to MsgAssertionException

Signed-off-by: Matt Kangas <matt.kangas@10gen.com>
boost::shared_ptr instead of shared_ptr, SERVER-10026
SERVER-9670 Use LIBDEPS to declare dependents in addition to prerequisites.

To achieve this, the "direct prerequisites" for a File node are stored in the
node's attributes object, instead of in the build environment for the node.
This allows the emitter for nodes to amend _other nodes_ prerequisites.  After that,
this change is trivial.  Introduce a LIBDEPS_DEPENDENTS environment variable that sets
the named dependents of a node, while the existing LIBDEPS variable may be considered
the direct prerequisites.
Get the dbwebserver code out of the tools and other non-server components.

The web server component has an implicit dependency on the server logging behavior,
and is not used outside of mongod and mongos, anyways.
SERVER-10084 New logging implementation.

This change-set:

* Introduces a new top-level directory, mongo/logger, containing most of the implementation of logging functionality formerly found in log.cpp/log.h.

* Cleans up existing, unusual uses of the logging system that were not trivially compatible with the new implementation.

* Replaces Logstream/Nulstream with a LogstreamBuilder object, whose destructor writes log messages.  This new LogstreamBuilder is reentrant, unlike the old logging code, which was thread-safe but not reentrant.  Additionally, std::endl is no longer required to terminate a log line.  When a LogstreamBuilder goes out of scope, the log message gets committed.

* Separates the log system into several components: a global LogManager, several LogDomains, various kinds of Appenders (e.g., SyslogAppender) and Encoders (for formatting messages).

* Allows unit tests to capture and examine log output.

This patch does _not_ introduce support for hierarchical log domains, or for enabling and disabling specific log domains when the server is running in a multi-threaded mode.  This is future work.
SERVER-6246 Temporarily make user management commands take global write lock.

This is to enable the temporary approach of fully rebuilding user data in memory on each update to
user document, as part of fascilitating the transistion to the new user data structures.