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
Use only one shard in SuggestSearchTests#testPhraseBoundaryCases to get reliable statistics
Update .gitignore to ignore the execution hints files
add CBOR data format support
Restore streamInput() performance over PagedBytesReference.

Closes #5589
Add suggest stats

closes #4032
add human readable start_time and refresh_interval

closes #5280
[TEST] Removed skip regex sections as all the runners implemented the feature
fix dynamic_type in dynamic_template

closes #5256
[TEST] Update TTL test can fail on faster boxes - improve range of valid vals
Fixed highlighting inconsistencies between REST and Java api

Exposed HighlightBuilder missing global options in Java API: fragmentSize, numOfFragments, highlightFilter, boundaryMaxScan and boundaryChars
Exposed SearchRequestBuilder missing global options shortcuts: setHighlighterFragmentSize, setHighlighterNumOfFragments, setHighlighterFilter, setHighlighterBoundaryMaxScan, setHighlighterBoundaryChars, setHighlighterFragmenter, setHighlighterPhraseLimit & setHighlighterForceSource

Closes #5281
[TEST] Wait for shards to allocate before cleaning caches
Update has-parent-filter.asciidoc

"This filter return child..." => This filter returns child...
An improvement to unicast discovery to also ping nodes the node itself received a ping from.
Also moved the unicast tests all in a single package.

Closes #5508
[TEST] decreased number of replicas to 0 in refresh tests

Some tests disable refresh and verify that documents cannot be found without an explicit refresh. With at least one replica and waiting for yellow though, it can happen that we start indexing docs when the replicas are not ready yet, and as soon as they become ready they get refreshed, causing the newly added docs to be unexpectedly found. Solution is to disable replicas for these specific tests.
Document http.cors-settings
Search template: Fix support for source parameter

If a search template was created using the source parameter, the
content of the parameter was put as source instead of sourceTemplate

Fixes #5556
Refactor common code for unmapped aggregators into `NonCollectingAggregator`.

Our aggregators that are dedicated to unmapped fields all look more or less
the same so this hopefully helps remove some spaghetti code.

Close #5528
[TEST] Test sending the request body as source parameter with GET method through REST tests

For around 10% of the calls that support the GET method, the request body gets now sent as `source` parameter with GET method (no randomized method in this case).

This way we can find bugs like #5556 (missing support for source param).
[TEST] introduced ImmutableTestCluster abstract base class for TestCluster

The new base class contains all the immutable methods for a cluster, which will be extended by the future ExternalCluster impl that relies on an external cluster and won't be adding nodes etc. but only sending requests to an existing cluster whose layout never changes