Enable DiskThresholdDecider by default, change default limits to 85/90%

Fixes #6200
Fixes #6201
Wait till node is part of cluster state for join process
When a node sends a join request to the master, only send back the response after it has been added to the master cluster state and published.
This will fix the rare cases where today, a join request can return, and the master, since its under load, have not yet added the node to its cluster state, and the node that joined will start a fault detect against the master, failing since its not part of the cluster state.
Since now the join request is longer, also increase the join request timeout default.
closes #6480
Rest-Spec: search was missing the track_scores param
Added caching support to geohash_filter

Caching is turned off by default.

Closes #6478
[TEST] Verify the flush reponse
[TEST] Add FailureMarker to test listeners so -Dtests.failfast works
[TEST] Removed incorrect assertion (it is expected that the flush doesn't execute on all shard copies, because we don't wait for green status)
Added link to "native" ES client
Docs: Linked to fielddata formats from core types

Closes #6489
Facets: deprecation.

Users are encouraged to move to the new aggregation framework that was
introduced in Elasticsearch 1.0.

Close #6485
[DOCS] Clarify the trade-off of the `disk` doc values format.
Packaging: Remove java-6 directories from debian init script

Closes #6350
Added missing comma in suggester example
[Test] set search request size testGeohashCellFilter

The default of 10 is not good enough as previously thought.
Java API: Make sure afterBulk is always called in BulkProcessor after beforeBulk

Moved BulkProcessor tests from BulkTests to newly added BulkProcessorTests class.
Strenghtened BulkProcessorTests by adding randomizations to existing tests and new tests for concurrent requests and expcetions.
Also made sure that afterBulk is called only once per request if concurrentRequests==0.

Closes #5038
[TEST] Fix assert
Aggregations: Fix reducing of range aggregations.

Under some rare circumstances:
 - local transport,
 - the range aggregation has both a parent and a child aggregation,
 - the range aggregation got no documents on one shard or more and several
   documents on one shard or more.
the range aggregation could return incorrect counts and sub aggregations.

The root cause is that since the reduce happens in-place and since the range
aggregation uses the same instance for all sub-aggregation in case of an
empty bucket, sometimes non-empty buckets would have been reduced into this
shared instance.

In order to avoid similar bugs in the future, aggregations have been updated
to return a new instance when reducing instead of doing it in-place.

Close #6435
Aggregations: Remove `ordinals` execution hint.

This was how terms aggregations managed to not be too slow initially by caching
reads into the terms dictionary using ordinals. However, this doesn't behave
nicely on high-cardinality fields since the reads into the terms dict are
random and this execution mode loads all unique terms into memory.

The `global_ordinals` execution mode (default since 1.2) is expected to be
better in all cases.

Close #6499
Fielddata: Don't expose hashes anymore.

Our field data currently exposes hashes of the bytes values. That takes roughly
4 bytes per unique value, which is definitely not negligible on high-cardinality
fields.

These hashes have been used for 3 different purposes:
 - term-based aggregations,
 - parent/child queries,
 - the percolator _id -> Query cache.

Both aggregations and parent/child queries have been moved to ordinals which
provide a greater speedup and lower memory usage. In the case of the percolator
it is used in conjunction with HashedBytesRef to not recompute the hash value
when getting resolving a query given its ID. However, removing this has no
impact on PercolatorStressBenchmark.

Close #6500
[TEST] Stabelize test - wait for yellow to ensure all primaries are allocated