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.
Fix MatchQueryParser not parsing fuzzy_transpositions
[Test] make sure we test writeTo(Channel) in BytesReference
also introduce proper randomization of content in the bytes
[Test] make sure to close the file at the end of the test
Docs: Adding Hebrew analyzer

Closes #6306
[DOCS] fix typo
Startup: Reset locale to en_US.UTF-8 in bin/elasticsearch

Because the NetworkExceptionHelper class relies on the english language in
order to extract information and decide whether a certain exception is a
network problem, we need to set the english locale on startup in order
to prevent other locales to circumvent this check.
Highlighting: Plain highlighter to use analyzer defined on a document level when available.

At the moment plain highligher only uses an analyzer defined for on the type
level. However, during the indexing stage it is possible to define analyzer on
per document level, for example mapping '_analyzer' to another field, containing
required name. This commit attempts to make sure that highlighting works
correctly in this scenario.

Closes #5497
[BUILD] Remember to use AtomicReader.addCoreClosedListener when upgrading to Lucene 4.9.