Aggregations: Fix ReverseNestedAggregator to compute the parent document correctly.

Close #6278
Nested: Make sure queries/filters/aggs get a FixedBitSet when they expect one.

Close #6279
[TESTS] Randomly disable the filter cache.

Close #6280
Limit guava caches to 31.9GB

Guava's caches have overflow issues around 32GB with our default segment
count of 16 and weight of 1 unit per byte.  We give them 100MB of headroom
so 31.9GB.

This limits the sizes of both the field data and filter caches, the two
large guava caches.

Closes #6268
[TESTS] Fix test bug in SimpleValidateQueryTests.
[TESTS] Fix test to use index-level doc IDs instead of segment-level doc IDs.
[TESTS] Left-over from 14420d7c4e15df9b565b50ef5beab797f756c3ac.
Added `top_hits` aggregation that keeps track of the most relevant document being aggregated per bucket.

Closes #6124
Improve error when mlockall fails (closes #6288)
Explicitly clean up fielddata cache when clearing entire cache
[SPEC] Added the `percolator_format` URL parameter to the "Percolate" API spec
Set the sortValues on SearchHit post aggregation instead of during the reduce.
Benchmarks: Normalize package naming

Normalizing all package naming to 'benchmark' from 'bench'.
Benchmarks: Move classes into sub-packages to reflect namespace.

Refactoring benchmark.* package organization to better reflect the
various API operations that can be performed on benchmarks.

This commit moves the 'start' action into its own sub-package, renames a
few methods accordingly, and updates some variable names to reflect the
change.
Benchmarks: Move status classes into sub-packages to reflect namespace.

Refactoring benchmark.* package organization to better reflect the
various API operations that can be performed on benchmarks.

This commit moves the 'status' action into its own sub-package, renames a
few methods accordingly, and updates some variable names to reflect the
change.
Benchmarks: Move abort classes into sub-packages to reflect namespace.

This commit moves the 'abort' action into its own sub-package, renames a
few methods accordingly, and updates some variable names to reflect the change.
Benchmarks: Simplify start benchmark logic

Simplifies the logic for submitting benchmarks. Moves all the cluster
update state logic into adjacent code blocks (was previously scattered
throughout class file). Makes a clearer separation between code that
processes cluster meta-data and code that submits benchmarks for
execution.

Additionally renamed and added a few small utility methods for
validating existence of benchmark-eligible nodes.

Makes naming more consistent by prefixing 'Start' to actions related to
starting a benchmark.