Fix for zero-sized content throwing off toChannelBuffer(). Also
short-circuit writeTo(..) accordingly to avoid unnecessary work.

Fixes #5543
Capture and set start time in Delete By Query operations

This is important for queries/filters that use `now` in date based queries/filters

Closes #5540
Assorted fixes for bugs in the PagedBytesReference tests, plus a typo
where the wrong variable was used for a calculation.

Closes #5549
[DOCS] fixed typo

Closes #5272
[TEST] Increase logging on MinDocCountTests.
Convert TermQuery to PrefixQuery if PHRASE_PREFIX is set

We miss to add a single term to a prefix query if the query in only a
single term.

Closes #5551
[DOCS] Clarify nested type documentation
[TEST] Moved wipe* methods, randomIndexTemplate & ensureEstimatedStats from ElasticsearchIntegrationTest to TestCluster

This is the first to make it possible to have a different impl of TestCluster (e.g. based on an external cluster) that has the same methods but a different impl for them (e.g. it might use the REST API to do the same instead of the Java API)

Closes #5542
[TEST] removed leftover ElasticsearchIntegrationTest#randomIndexTemplate

used cluster().randomIndexTemplate instead
Remove deprecated gateways

Closes #5422
Fixes a bug when the field has been configured with eager fielddata loading, the fielddata is not being loaded.

Closes #5557
Fixed space in licence header.
Now really fix eager fielddata loading.

Relates to #5557
[DOCS] `_type` instead of Type Field
[TEST] Made ttl test more predictable
* Only run the test with one node, to make sure only a single purger thread is running.
* Instead of generating the _timestamp upon indexing in ES, define the _timestamp in the documents.
* Verify the responses from the index requests.
Fix IndexShardRoutingTable's shard randomization to not throw out-of-bounds
exceptions.

Close #5559
Forbid Math.abs(int/long).

We have had a couple of bugs because of the use of these methods without paying
attention that it might return a negative value when provided with MIN_VALUE.
There is one common and legitimate usage of this method in order to perform
a modulo operation which would always return a positive number. This use-case
has been extracted to MathUtils.mod.

Close #5562
[Build] use branch version in execution hit file name
[JAVA7 Upgrade] Move to Long.compare
[JAVA7 Upgrade] Replace explicit type with <>