[TEST] Allow higher ClusterHealthTimeout on tests if configuration is slow
[TESTS] Add more assertSearchResponse to aggregations tests.
Use startNodesAsync in more tests
Added test with AwaitsFix annotation that simulates a split brain.
[Docs]  Add experimental highlighter plugin
[DOCS] Added tables and fixes to upgrade.asciidoc, fixed version in README.textile
Author: Sean Gallagher
Date: 10 Apr 2014 15:23 EDT
Fixed an where a nested `nested` aggregation falls outside of its parent `nested` aggregation bounds.

The nested `nested` aggs now gets the proper parent docs that define its bounds correctly.

Closes #5728
The clear scroll apis now optionally accepts a scroll_id in it body.

Closes #5726
Ignored clear scroll rest test
[TEST] Prevent TTLPurger from recreating deleted index

Related to #5766
Each search request should use a new InternalSearchResponse instance even in case when all shards return no hits.
The InternalSearchResponse may get modified afterwards, so a new instance required at all times.
Strengthening pseudo random number generator and adding tests to verify its behavior.

Closes #5454 and #5578
Added a AppendingDeltaPackedLongBuffer-based storage format to single value field data

The AppendingDeltaPackedLongBuffer uses delta compression in paged fashion. For data which is roughly monotonic this results in reduced memory signature.

By default we use the storage format expected to use the least memory. You can force a choice using a new field data setting `memory_storage_hint` which can be set to `ORDINALS`, `PACKED` or `PAGED`

Closes #5706
Fixed- PackedArrayIndexFieldData.chooseStorageFormat compared to Long.MAX_VALUE instead of Long.MIN_VALUE

Also made the LongFieldDataTests.SINGLE_VALUED_SPARSE_RANDOM & LongFieldDataTests.MULTI_VALUED_SPARSE_RANDOM more sparse
Fix typos in percolate.asciidoc

Close #5762 #5763 #5764
Added awaitFix for SimpleNestedTests.testSortNestedWithNestedFilter

While investigating failures
PR #5706 introduced a bug in the sparse array-backed field data

When we load sparse single valued data, we automatically assign a missing value to represent a document who has none. We try to find a value that will increase the number of bits needed to represent the data. If that missing value happen to be 0, we do no properly intialize the value array.

This commit solved this problem but also cleans up the code even more to make spotting such issues easier in the future.
Ensure pending merges are updated on segment flushes

Due to the default of `async_merge` to `true` we never run
the merge policy on a segment flush which prevented the
pending merges from being updated and that caused actual
pending merges not to contribute to the merge decision.

This commit also removes the `index.async.merge` setting is actually
misleading since we take care of merges not being excecuted on the
indexing threads  on a different level (the merge scheduler) since 1.1.

This commit also adds an additional check when to run a refresh
since soely relying on the dirty flag might leave merges un-refreshed
which can cause search slowdowns and higher memory consumption.

Closes #5779
[TEST] Improve performance of MockBigArray MockPageRecycler
[Test] should be abstract