SERVER-8790 Move QueryPlanSummary to a new file.

Conflicts:
	src/mongo/db/ops/query.cpp
	src/mongo/db/queryoptimizer.cpp
	src/mongo/db/queryoptimizercursorimpl.cpp
SERVER-8790 Move QueryPlanSummary to a new file.

Conflicts:
	src/mongo/db/ops/query.cpp
	src/mongo/db/queryoptimizer.cpp
	src/mongo/db/queryoptimizercursorimpl.cpp
SERVER-8790 Move QueryPlan to a new file.

Conflicts:
	src/mongo/db/queryoptimizer.cpp
	src/mongo/db/queryoptimizer.h
	src/mongo/db/repl/finding_start_cursor.cpp
	src/mongo/db/repl/finding_start_cursor.h
	src/mongo/dbtests/repltests.cpp
SERVER-5848 determine index suitability using a FieldRangeSet

Previously each special index type would determine the suitability
of the index by analyzing the original query.  To avoid re-parsing
the query for each index, we now pass in a FieldRangeSet, which is
a better representation of all the constraints implied by the query.

Conflicts:
	src/mongo/db/geo/2d.cpp
	src/mongo/db/geo/s2index.cpp
	src/mongo/db/indexkey.cpp
	src/mongo/db/indexkey.h
	src/mongo/db/queryoptimizer.cpp
SERVER-5848 Disable tests temporarily (fix compile).
SERVER-5848 ammend c++ unit tests for new suitability method
SERVER-5848 further simplifications to default suitability() method