SERVER-9960 Replace X509_NAME_oneline with X509_NAME_print_ex
modest ( ~ !10% ) compile time speedup by some small header cleanup

Conflicts:
	src/mongo/util/time_support.h
very small header cleaning
Include what you use: mongo/util/concurrency/mutex.h.

Conflicts:
	src/mongo/util/file_allocator.h
SERVER-10074 RotatableFileWriter type, introduce logger module.

Conflicts:
	src/mongo/base/error_codes.err
SERVER-10088 SERVER-10074 Add forgotten copyright message to rotatable_file_writer_test.cpp.
Fix unit test to handle explicit operator bool in C++11 mode
SERVER-10074 Clean up before and after rotatable_file_writer_test execution.
remove unused headers

Conflicts:
	src/mongo/db/collection.h
	src/mongo/db/dur_journal.cpp
	src/mongo/db/dur_recover.cpp
	src/mongo/s/config.h
	src/mongo/util/mmap.cpp
Eliminate unused parameter to initializeServerGlobalState().
StatusWith class - designed for returning an error or a value
Makes exception free code cleaner by not needing so many out parameters
SERVER-9902 Use #pragma once in StatusWith

Signed-off-by: Randolph Tan <randolph@10gen.com>
Fork earlier in server startup; will simplify logging initialization.

Ensures that server initialization happens in the process that will actually
host the server, rather than the process that forks the server.

Also, when startup fails in mongos, exit with a failing code.

Conflicts:
	src/mongo/db/db.cpp
SERVER-2011 Added --quiet option to tools
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.

Conflicts:
	src/SConscript.client
	src/mongo/SConscript
	src/mongo/base/error_codes.err
	src/mongo/client/distlock.cpp
	src/mongo/db/btree.cpp
	src/mongo/db/btreebuilder.cpp
	src/mongo/db/client.cpp
	src/mongo/db/commands/index_stats.cpp
	src/mongo/db/commands/mr.cpp
	src/mongo/db/commands/parameters.cpp
	src/mongo/db/commands/pipeline_command.cpp
	src/mongo/db/commands/storage_details.cpp
	src/mongo/db/commands/write_commands/batch_executor.cpp
	src/mongo/db/database.cpp
	src/mongo/db/db.cpp
	src/mongo/db/dbcommands.cpp
	src/mongo/db/dbcommands_admin.cpp
	src/mongo/db/index.cpp
	src/mongo/db/index/btree_based_builder.cpp
	src/mongo/db/index_update.cpp
	src/mongo/db/initialize_server_global_state.cpp
	src/mongo/db/instance.cpp
	src/mongo/db/ops/query.cpp
	src/mongo/db/pagefault.cpp
	src/mongo/db/pdfile.cpp
	src/mongo/db/pipeline/pipeline_d.cpp
	src/mongo/db/record.cpp
	src/mongo/db/repl/master_slave.cpp
	src/mongo/db/repl/oplog.cpp
	src/mongo/db/storage/namespace_index.cpp
	src/mongo/dbtests/basictests.cpp
	src/mongo/dbtests/extsorttests.cpp
	src/mongo/dbtests/mmaptests.cpp
	src/mongo/dbtests/perf/perftest.cpp
	src/mongo/dbtests/perftests.cpp
	src/mongo/dbtests/queryoptimizertests2.cpp
	src/mongo/dbtests/replsettests.cpp
	src/mongo/dbtests/repltests.cpp
	src/mongo/s/commands_admin.cpp
	src/mongo/s/s_only.cpp
	src/mongo/tools/tool.cpp
	src/mongo/util/file_allocator.cpp
	src/mongo/util/log.cpp
	src/mongo/util/log.h
	src/mongo/util/progress_meter.cpp
	src/mongo/util/version.cpp