SERVER-10074 RotatableFileWriter type, introduce logger module.

Conflicts:
	src/mongo/base/error_codes.err
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/mongo/db/btree.cpp
	src/mongo/db/btreebuilder.cpp
	src/mongo/db/commands/index_stats.cpp
	src/mongo/db/commands/storage_details.cpp
	src/mongo/db/commands/write_commands/batch_executor.cpp
	src/mongo/db/dbcommands_admin.cpp
	src/mongo/db/index/btree_based_builder.cpp
	src/mongo/db/index_update.cpp
	src/mongo/db/pagefault.cpp
	src/mongo/db/pdfile.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/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/repltests.cpp
	src/mongo/util/file_allocator.cpp