Introduce MONGO_DISALLOW_COPYING macro.
Introduced the Status class.

Conflicts:
	src/mongo/SConscript
Implement and test InitializerDependencyGraph.

An InitializerDependencyGraph is a directed acyclic graph (DAG) of named
initialization operations.  Every node in the graph has a unique name, a
behavior function, and a set of prerequisites.  The graph supports two
inspection functions, one to get the behavior function for a node with a given
name, and the other to produce a vector of node names, ordered in a manner that
does not violate any preprequisite dependneces.

InitializerDependencyGraph is exception-free, and because it is for use very
early in process startup, it does no logging itself.

This patch also introduces a utility macro, MONGO_MAKE_STRING_VECTOR, which is
useful for constructing std::vector<std::string> from a sequence of string
literals.  This patch uses it for testing, but subsequent MONGO_INIT-related
work will rely on it, as well.

Part of work on SERVER-5112.
SERVER-7028 Add OwnedPointerVector.
SERVER-7028 compile linux, in owned_pointer_vector_test define DestructionLogger::_destroyedName.
Rename InitializationContext to InitializerContext, for consistency with other type names.

SERVER-5112
Make Status::OK a static function.

Also change all Status::OK references to Status::OK().  This change makes Status::OK()
accesible to functions running in static initialization blocks.
parseNumberFromString* functions

A uniform interface for parsing numbers out of strings, with implementations for
the standard integer types.  Extension to double should be straightforward.  Tests
included.
Cross-compiler support for unordered_map and unordered_set.
SERVER-5112 ConfigurationVariableManager type and unit tests.

In this implementation, setVariable function always takes a string
parameter, and parsing is handled by a parsing object supplied by the
configuration variable declarer.
Stringify the cycle into the Status message parameter when topSort detects a cycle.

Should improve reporting of programming errors involving initialization dependences.

SERVER-5112
SERVER-5112 Initializer type and test.
SERVER-5112 Introduce runGlobalInitializers(), macros and tools for global initializer declaration.

These utilities simplify adding global (process-wide) initializers that run at the beginning of
main().

Also, run the global initializers in the main() of unittests.
Call runGlobalInitializersOrDie() at the top of the main() functions in mongo programs.

SERVER-5112

Conflicts:
	src/mongo/SConscript
	src/mongo/dbtests/perf/perftest.cpp
	src/mongo/tools/dump.cpp
	src/mongo/tools/oplog.cpp
Move StringData to base/string_data.h

Conflicts:
	src/mongo/client/examples/mongoperf.vcxproj
	src/mongo/client/examples/mongoperf.vcxproj.filters
	src/mongo/db/jsobj.h
	src/mongo/db/mongod.vcxproj
	src/mongo/db/mongod.vcxproj.filters
	src/mongo/dbtests/test.vcxproj
	src/mongo/dbtests/test.vcxproj.filters
	src/mongo/shell/mongo.vcxproj
	src/mongo/shell/mongo.vcxproj.filters
Add support for C++11 in platform/unordered_{map|set}.h

With this change applied, mongodb compiles and links on MacOS with
clang++ in C++11 mode, using libc++ as the standard library.
fix licenses these should be apache
Fixed typo
SERVER-5677 Replaced JSON -> BSON parser
SERVER-7172 Added comparison support in StringData.