[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 <>
[JAVA7 Upgrade] Replace try/finally with
[TEST] Reset global cluster if tearDown failes to prevent subsequent failures
[Build] use the same execution hint file across the pom file
Adding Kopf to community list of monitoring tools.

Adding versatile monitoring and administration tool Kopf to the community section of the documentation.
Tribe: Index level blocks, index conflict settings
allow to configure on the index level which blocks can optionally be applied using tribe.blocks.indices prefix settings.
allow to control what will be done when a conflict is detected on index names coming from several clusters using the tribe.on_conflict setting. Defaults remains "any", but now support also "drop" and "prefer_[tribeName]".
closes #5501
cleanup second static cluster in test
hopefully this will remove the testing infra from failing on hanging to memory
Be less verbose logging ClusterInfoUpdateJob failures

Closes #5222