SERVER-6336 Use bson template evaluator - benchRun

Supports a richer templating language in benchRun by using the
template evaluator library.
SERVER-7010 do not use massert to validate user input

Change two uses of massert() to uassert() in
Scope::validateObjectIdString() to prevent stack trace on
an invalid string supplied to the ObjectId() constructor.
SERVER-7187 Make shell version() function return the version instead of just printing it

Conflicts:
	src/mongo/scripting/utils.cpp
Fixed typos

Signed-off-by: Tad Marshall <tad@10gen.com>

Conflicts:
	src/mongo/db/btree.h
	src/mongo/db/diskloc.h
	src/mongo/db/dur.h
	src/mongo/db/dur_preplogbuffer.cpp
	src/mongo/db/dur_recover.cpp
	src/mongo/db/json.cpp
	src/mongo/db/memconcept.cpp
	src/mongo/db/namespace_details.h
	src/mongo/db/record.cpp
	src/mongo/db/repl.cpp
	src/mongo/db/repl/rs_rollback.cpp
	src/mongo/db/repl/rs_sync.h
	src/mongo/dbtests/jsobjtests.cpp
	src/mongo/dbtests/perf/btreeperf.cpp
	src/mongo/dbtests/queryoptimizercursortests.cpp
	src/mongo/s/d_migrate.cpp
	src/mongo/s/d_writeback.h
	src/mongo/util/file_allocator.h
	src/mongo/util/mmap.h
Generalize mongo/util/map_util.h utilities to work with unordered maps, too.
fix whitespace/indent and turn on

Conflicts:
	buildscripts/lint.py
	src/mongo/db/repl/bgsync.cpp
	src/mongo/dbtests/btreetests.cpp
SERVER-6802 allow bulk insert options from the shell
SERVER-6802 fix v8 to accept insert flags
SERVER-7537 V8: prevent heap/stack corruption with off-by-one error; avoid memory leaks on Windows
SERVER-7134 Shuffle spidermonkey engine code around.

Conflicts:
	src/mongo/scripting/engine_spidermonkey.cpp
SERVER-7565 SERVER-7126 SERVER-7576 Visual Studio require Python, run Python scripts

This commit makes the Visual Studio builds require Python to be installed.

Add Pre-Build Events to Visual Studio projects to run the same Python
scripts that the scons build runs to create src/mongo/base/error_codes.cpp,
src/mongo/base/error_codes.h, src/mongo/db/auth/action_type.h and
src/mongo/db/auth/action_type.cpp.

Conflicts:
	.gitignore
	src/mongo/db/mongod.vcxproj
	src/mongo/db/mongod_v8.vcxproj.filters
	src/mongo/dbtests/test.vcxproj
	src/mongo/dbtests/test.vcxproj.filters
	src/mongo/s/mongos.vcxproj
	src/mongo/s/mongos.vcxproj.filters
	src/mongo/shell/mongo.vcxproj
	src/mongo/shell/mongo.vcxproj.filters
SERVER-7134 Let MongoDB modules add commands to the Mongo object in the SpiderMonkey shell.
SERVER-7086 Add Visual Studio projects for V8

Added mongo_v8 and mongod_v8 projects for building the shell and
mongod with V8 instead of SpiderMonkey.

Conflicts:
	src/mongo/db/mongod_v8.vcxproj
	src/mongo/shell/mongo_v8.vcxproj
	src/mongo/shell/mongo_v8.vcxproj.filters
Rearrange v8_db.{h,cpp} includes.
SERVER-7134 Let MongoDB modules extend the prototype of the Mongo object in the V8 shell.
add fassert numbers
SERVER-7134 Revert path change in include
SERVER-7577 Do not try to use filename if not set
SERVER-7600 Fixup V8 includes, adapt Visual Studio projects

Use <v8.h> as include path for includes of "third_party/v8/include/v8.h",
adapt Visual Studio project files to include the required path, move
includes in mongo/scripting/v8* into style guide order, build Visual Studio
output files for V8 in separate directories so that SpiderMonkey and V8
builds can be run at the same time and to prevent link errors, tell
.gitignore to ignore these new directories.

Conflicts:
	src/mongo/db/mongod_v8.vcxproj
	src/mongo/shell/mongo_v8.vcxproj
SERVER-7617 Enter and Exit our scope's Isolate in V8

Added Scope::enter() and exit() member functions, only doing something
in V8 builds, to enter and exit the Isolate of the Scope we are using.
Call these functions when fetching a Scope from the pool/ScopeCache and
when returning one to the pool or deleting one.  The Isolate is the actual
"state" container for V8, so many things don't work properly if this isn't
set up.  There may be other situations where we need this, but this fixes
(at least) this particular case.