[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
Add the `field_value_factor` function to the function_score query

The `field_value_factor` function uses the value of a field in the
document to influence the score.

A query that looks like:
{
  "query": {
    "function_score": {
      "query": {"match": { "body": "foo" }},
      "functions": [
        {
          "field_value_factor": {
            "field": "popularity",
            "factor": 1.1,
            "modifier": "square"
          }
        }
      ],
      "score_mode": "max",
      "boost_mode": "sum"
    }
  }
}

Would have the score modified by:

square(1.1 * doc['popularity'].value)

Closes #5519