Aggregations: Fixed bug in top_hits aggregation to not fail with NPE when shard results are empty.

The top_hits aggregation returned an empty InternalTopHits instance with no fields set when there were no result, causing reduce and serialization errors down the road. This is fixed by setting all required fields when a there are no results.

Closes #6346
Aggregations: added pagination support to `top_hits` aggregation by adding `from` option.

Closes #6299
Docs: Tidied percolate.asciidoc
[BUILD] Fix compile error
Have a dedicated join timeout that is higher than ping.timeout for node join
Using ping.timeout, which defaults to 3s, to use as a timeout value on the join request a node makes to the master once its discovered can be too small, specifically when there is a large cluster state involved (and by definition, all the buffers and such on the nio layer will be "cold"). Introduce a dedicated join.timeout setting, that by default is 10x the ping.timeout (so 30s by default).
closes #6342
Aggregations: Take the 'from' into account when getting a fetched hit (InternalSearchHit). Hits before the 'from' are included in each shard result.
remove stale nocommit
Parent/Child: Added min_children/max_children to has_child query/filter

Added support for min_children and max_children parameters to
the has_child query and filter. A parent document will only
be considered if a match if the number of matching children
fall between the min/max bounds.

Closes #6019
Aggregations: apply 'from' if there is one shard result.
Core: apply 'from' if there is one shard result.
[TEST] speed up HighlightSearchTests a bit

Randomize rewrite methods instead of trying them all when highlighting multi term queries with postings highlighter
Rely on search type randomization and remove all the explicit setSearchType calls as they are not needed anymore
Remove explicit `.from`, `.size` and `.explain`, not needed and might slow tests down (especially explain)
Core: Protects against: 'from + size > scoreDocs.length' in case only single shard response
Core: reuse Lucene's TermsEnum for faster _uid/version lookup during

Reusing Lucene's TermsEnum for _uid/version lookups gives a small
indexing (updates) speedup and brings us a closer to not having
to spend RAM on bloom filters.

Closes #6212
[TEST] Ensure cluster size reflected in the cluster state

We perform some management operations that require the cluster to be
consistent with respect to the number of nodes in the cluster state
/ visible to the master in order to rely on the ack mechanism. This
only applies to the test infrastructure when nodes are not explicitly
started / stopped as well as while tearing down the cluster and wiping
indices after the tests.
[TEST] size should start from 1, top_hits aggregation doesn't support size <= 0
[TOOLS] Added simple S3 Download tool based on boto
[TEST] Added sort duel between a single shard index and a multi shard index.
[BUILD] Java version line was missleading

calling `java -version` might not print the java version that
is actually used to run maven. This commit prints a more accurate version
Geo: Issue with polygons near date line

If a polygon is constructed which overlaps the date line but has a hole which lies entirely one to one side of the date line, JTS error saying that the hole is not within the bounds of the polygon because the code which splits the polygon either side of the date line does not add the hole to the correct component of the final set of polygons.  The fix ensures this selection happens correctly.

Closes #6179
Object and Type parsing: Fix include_in_all in type

include_in_all can also be set on type level (root object).
This fixes a regression introduced  in #6093

closes #6304