[SPEC] Renamed benchmark endpoints

benchmark.submit -> benchmark
benchmark.list   -> list_benchmarks
benchmark.abort  -> abort_benchmark

And fixed the related tests
[SPEC] Added missing list_benchmarks test
[SPEC] The scroll_id is no longer a required qs param
Can be passed in the body instead
[DOCS] getting started tutorial
[SPEC] Added path without scroll_id to clear_scroll
Change default merge throttling to 50MB / sec

The current setting of 20MB/sec seems to be too conservative given
the capabilities of modern hardware. Even on cloud infrastructure this
seems to be too lowish. A 50MB default should provide better out of the box
performance
Disable benchmark tests until nodes set to run with
-Des.node.bench=true
Re-order log statements to be correct for segment and top level warming.
Change default numeric precision_step

Change the default numeric precision_step to 16 for 64-bit types,
8 for 32-bit and 16-bit types. Disable precision_step for the 8-bit
byte type.

Closes #5905
Change default recovery throttling to 50MB / sec

The current setting of 20MB/sec seems to be too conservative given
the capabilities of modern hardware / network throughput.
A 50MB default should provide better out of the box performance.
Closes #5882
[TEST] Randomized number of replicas between 0 and the number of data nodes - 1 (rather than just between 0 and 1)

Closes #5896
Include name of the field that caused a circuit break in the log and exception message

Fixes #5718
Closes #5841
[DOCS] rewrite -> fuzzy_rewrite in match query
Fixed typo
[TEST] add a test that explicitly verifies no duplicates are created
we do this test in other places in ES, but no dedicated test for it. This test was born out of the auto generate id work, but we should have this test regardless if it gets in or not
Add REST API spec for /_search_shards endpoint

Also adds REST test for /_search_shards

Closes #5907
Field data diet.

We have lots of unused, or almost unused methods in our field data impls,
especially when dealing with ordinals. Let's nuke them.

Close #5874
Remove abstraction in the percentiles aggregation.

We initially added abstraction in the percentiles aggregation in order to be
able to plug in different percentiles estimators. However, only one of the 3
options that we looked into proved useful and I don't see us adding new
estimators in the future.

Moreover, because of this, we let the parser put unknown parameters into a hash
table in case these parameters would have meaning for a specific percentiles
estimator impl. But this makes parsing error-prone: for example a user reported
that his percentiles aggregation reported extremely high (in the order of
several millions while the maximum field value was `5`), and the reason was that
he had a typo and had written `fields` instead of `field`. As a consequence,
the percentiles aggregation used the parent value source which was a timestamp,
hence the large values. Parsing would now barf in case of an unknown parameter.

Close #5859
Fail a DFS_QUERY_THEN_FETCH request if all shards failed the QUERY phase.

Today, if some shards pass the DFS phase but all of them fail the QUERY phase,
the response will only consist of failed shards. We should throw an exception
instead in order to be consistent with the QUERY_THEN_FETCH type.
Instantiate facets/aggregations during the QUERY phase.

In case of a DFS_QUERY_THEN_FETCH request, facets and aggregations are currently
instantiated during the DFS phase while they only become useful during the QUERY
phase. By instantiating during the QUERY phase instead, we can make better use
of recycling since objects will have a shorter life out of the recyclers.

Close #5821