SERVER-12132 Stop using stringstream in Value::coerceToString()

This speeds up the function by two changes:
1) Using StringBuilder (through str::stream) rather than stringstream.
2) Not constructing a StringBuilder or stringstream when not needed.

At least with libstdc++, constructing and destructing a stringstream is
extremely expensive.
SERVER-11443 Support all expressions in $redact, not just objects
SERVER-11708 Cache RHS set in $setIsSubset
SERVER-11368 Move final $unwinds from shards to merger
SERVER-11413 Make agg explain work with new query framework
SERVER-11831 Use documentFromBsonWithDeps in agg again

This bypasses new query framework projection and replaces it with a much faster
dedicated code path. The downside is that it prevents using covering indexes
in the cases where that was allowed (SERVER-12015).
SERVER-11675 Agg text support

To enable this, Documents now can store "metadata" that gets carried though
the pipeline as long as the result is the same logical document. This includes
crossing the shard-to-merger boundary.
Merge remote-tracking branch 'upstream/master'