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.
Added plugins to .gitignore

Since plugins should never be committed to the core codebase and it is useful to be able to add plugins to the development environment adding plugins folder to the .gitignore file will stop it from appearing in the unstaged changes
Serialization: Add support for Byte to the XContentBuilder.

Close #6127
Mustache: Ensure internal scope extrators are always operating on a Map

Mustache extracts the key/value pairs for parameter substitution from
objects and maps but it's decided on the first execution. We need to
make sure if the params are null we pass an empty map to ensure we
bind the map based extractor

Closes #6318
Recycling: change the default type of the page recycler to CONCURRENT instead of SOFT_CONCURRENT.

This default type has been inherited from its ancestor, the (non-paged) recycler whose memory
usage was unbounded and required soft references to make sure it could release memory eventually.
On the contrary, the page cache recycler memory usage is bounded so we could remove soft
references in order to remove load on the garbage collector.

Note: the cache type is already randomized in integration tests.

Close #6320
[TESTS] There might be several live `BigArrays` instances at the same time.
[DOCS] Document filtered query strategies.
[Tests] assert indexRandom's deletion of injection dummy docs find them