SERVER-6400 new expression tree and parser
Will eventually replace Matcher

Conflicts:
	src/mongo/SConscript
SERVER-6400 compile in non-debug mode
SERVER-6400 - fix case with indexes early field
SERVER-6400 - fix regex parsing error message and add some tests for field ordering
SERVER-6400 - move MatchDetails out of matcher.h

Conflicts:
	src/mongo/SConscript
	src/mongo/db/matcher.cpp
	src/mongo/db/matcher.h
SERVER-6400 remove old unused code to make porting easier
SERVER-6400 - fix compile with optimizer onf
SERVER-6400 - framework and start of Matcher replacement.  using Matcher2 name

Conflicts:
	src/mongo/SConscript
SERVER-6400 - some style improvements for Matcher2
SERVER-6400 rename *Expression* to *MatchExpression* to avoid conflict
SERVER-6400 - keep a real BSONObj in Matcher2, not a reference
SERVER-6400 - port more old tests
SERVER-6400 - more matcher tests using both versions

Conflicts:
	src/mongo/dbtests/matchertests.cpp
SERVER-6400: MatchExpression version of Matcher code complete.

Conflicts:
	src/mongo/SConscript
	src/mongo/dbtests/matchertests.cpp
MX-1125 imported s2 and geo code

Copied src/third_party/s2 and src/mongo/db/geo as of mongodb/mongo@ed3efe4 and added relevant
scons/cmake pieces to build it.
SERVER-6400: do not use IN since its a macro on windows
SERVER-6400 rename Matcher MatcherOld so switching is small

Conflicts:
	src/mongo/db/matcher.cpp
	src/mongo/db/matcher.h
	src/mongo/db/projection.h
SERVER-6400 new version of hasExistsFalse
SERVER-6400: prep to have both MatcherOld and Matcher2 in the code base

Conflicts:
	src/mongo/db/matcher.cpp
	src/mongo/db/matcher_old.cpp
	src/mongo/dbtests/matchertests.cpp
SERVER-6400: move CoveredIndexMatcher declaration to its own file

Conflicts:
	src/mongo/db/matcher.h
	src/mongo/db/matcher_covered.cpp