SERVER-12655 Plug cursor leak in agg
SERVER-12488 Assume we don't need textScore if not doing text query

This means we won't ask the query framework for the score since there
shouldn't be any. This ensures that results for missing text scores are
consistent with missing fields.
SERVER-12373 Optimize $group by artificial objects

This avoids building the _id (group key) objects while processing inputs to
$group. Instead it just remembers the values of the fields, and saves building
the object until it is preparing the output.
Move index key validation into IndexCatalog::validateKeyPattern

This just moves around existing checks and tries to harmonize the error
messages. Should not change behavior other than error text.

Prep for SERVER-12070 SERVER-12242 SERVER-12244. They will all use this
function to do their validation.
SERVER-12070 SERVER-12242 SERVER-12244 Validate existing indexes
Merge remote-tracking branch 'upstream/master'