[DOCS] Updated a bad link
Removed exception handling in InternalIndexShard.completionStats()

This is already caught at another level, see #4203
Extended TESTING.asciidoc with an example of running just the REST tests from maven
Move XContent rendering of ClusterIndexHealth to the class itself
Fixed FileUtilsTests, used wrong path separator (worked only on *nix)
Removed exception handling in InternalIndexShard.docStats() & storeStats()

This is already caught at another level, see #4203
Don't delete local shard data when its allocated on a node that doesn't exists
This is an extreme case, exposed by a bug we had in our allocation in local gateway, causing a cluster state that doesn't include a node in the nodes list, but still has the shard in the routing table pointing at the non existent node. Then, when a node on the same box comes back, it will cause the local shard data to be deleted because it thinks its fully allocated on other nodes.
fixes #4502
Switched rest-api-spec url to https
Use existing datastructures from RoutingNodes to elect unassigned primaries

Currently we trying to find a replica for a primary that is allocated by
running through all shards in the cluster while RoutingNodes already has
a datastructure keyed by shard ID for this. We should lookup this
directly rather than using linear probing. This improves shard allocation performance
by 5x.
Compressed geo-point field data.

This commit allows to trade precision for memory when storing geo points.
This new field data impl accepts a `precision` parameter that controls the
maximum expected error for storing coordinates. This option can be updated on
a live index with the PUT mapping API.

Default precision is 1cm, which requires 8 bytes per geo-point (50% memory
saving compared to using 2 doubles).

Close #4386
Added cluster health status to the Cluster Stats API

Relates to #4460
Removed a leftover line in TESTING.asciidoc
Run REST test-suite against release packages during release process
On node join, evict existing node(s) with the same transport address
Make sure to evict an existing node with the same transport address as a new node that joins. This can happen for example when there is a bug in a cluster state event handler, which causes the "old" node to not be evicted, or a load on the master node that will take time for the "old" node leaving to be processed.
closes #4503