Aggregations: Properly support top_hits aggregation in a nested and reverse_nested aggregations.

At the moment the `top_hits` aggregation fails if it is being put in a nested or reverse_nested aggregations. This PR add proper support for nested inner objects being emitted as hits in the `top_hits` aggregator. All the known fetch phase features are supported.

This PR adds fetch infrastructure to get #3022 in as well.
(I mean: if there are 2 levels of nested documents and return hits for the 2nd level, we would need the offset from level 1 in the root document as well as the offset from leve 2 in the level1 document?)