DATAMONGO-753 - Add support for nested field references in group operations.

Introduced FieldsExposingAggregationOperation to mark AggregationOperations that 
change the set of exposed fields available for processing by later AggregationOperations.
Extracted context state out of AggregationOperation to ExposedFieldsAggregationContext for better separation of concerns.
Modified toDbObject in Aggregation to only replace the aggregation context  when the "current" AggregationOperation was a FieldExposingAggregationOperation.
Removed the getFields() method of UnwindOperation and changed it's type to just AggregationOperation since the UnwindOperation doesn't expose new fields to the context 
and retains all fields that are currently available.
Resolution of nested field references are working now.