* setup accurate GeoDistance Function
* adapt tests
* introduced default GeoDistance function
* Updated docs

closes #4498
Randomize CacheRecycler instance in TestCluster
Randomize node level setting per node not per cluster
Use RandomPicks to select a random array element
Make RangeAggregator a MULTI_BUCKETS aggregator.

Until now, RangeAggregator was a PER_BUCKET aggregator, expecting to be always
collected with owningBUcketOrdinal == 0. However, since the number of buckets
it creates is known in advance, it can be changed to a MULTI_BUCKETS aggregator
by just multiplying the bucket ordinal by the number of ranges.

This makes aggregations that have ranges as sub aggregations of PER_BUCKET
aggregators more efficient.

Close #4550
Doc values for geo points.

This commits add doc values support to geo point using the exact same approach
as for numeric data: geo points for a given document are stored uncompressed
and sequentially in a single binary doc values field.

Close #4207
Fix NPE in RangeAggregator
Fix SuggestSearchTests to expect any order in the error message
Add SLOPPY_ARC to GeoDistanceSearchBenchmark.
removed rest-spec submodule and prepared project for same files added directly to the codebase (no submodule) within rest-api-spec

(temporarily disabled FileUtilsTests & REST tests as there's temporarily no rest-spec dir)

Relates to #4540 #4376
merged rest-api-spec repo into es core

Closes #4540
Relates to #4376
re-enabled FileUtilsTests and REST tests as rest-api-spec has been added back

fixed rest-api-spec paths in TESTING docs

Relates to #4540 & #4376