improve moving from post_recovery to started
we need to move to started from post recovery on cluster level changes, we need to make sure we handle a global state change of relocating, which can happen (and not pass through started)
Evilize RecoveryWhileUnderLoadTests a bit more
use Math.max rather than an if statement
better timeout handling waiting for primary to be active for indexing
take into account the correct delta timeout when scheduling it, since now we can retry again after removing a listener
Fixed concurrency issue in simple id cache. The lget() of a map can only be used if the map isn't shared.
Fixed delete mapping to return acknowledged false when ack times out
[DOCS] Typo on shingle tokenfilter
Removed needless concreteIndices call, already called in doExecute and set to the request object
The mpercolate api rest endpoint should also support http get.
Fixed bug (NPE) in mpercolate api, defaults from percolating existing documents where also applied for the regular percolate api, these defaults were none existing (null).
[DOCS] Fixed percolate docs errors
Randomize exceptions when file is deleted while still open.

This somehow emulates a behavior on windows but we should test the
other code paths as well.
[DOC] Improve documentation on search stats groups

Document the ability to return all search statistics groups and provide examples of returning search statistics for groups.
Improved acknowledgement test for cluster reroute with dry_run flag

Usually acknowledged true means that all nodes have digested the change and are in sync. When no changes are made, there is no need to push a new cluster state, no need to wait for ack either, but can't guarantee that all nodes are in sync.

When using cluster reroute with dryRun flag no changes are made, this test was based on the wrong assumption that acknowledged meant all nodes were in sync, which is not the case here.

Changed the test to only read the cluster state from the master, to check that nothing changed there after processing the cluster state update.
Introduce a new ImmutableOpenMap
this map is a "true" immutable map, encapsulating an open impl, and has a builder that allows it to be built easily.
the builder has the optimization of using clone if its being built based on an existing immutable map.
Fixed ack behaviour when no ack is expected from any node or timeout is set to 0

We now return acknowledged true when no wait is needed (mustAck always returns false). We do wait for the master node to complete its actions though. Previously it would try to timeout and hang due to a CountDown#fastForward call when the internal counter is set to 0

We now return acknowledged false without starting the timeout thread when the timeout is set 0, as starting the wait and immediately stopping the thread seems pointless.

Added coverage for ack in ClusterServiceTests
remove unneeded check...
protect ImmutableOpenMap builder from using the built map after build has been called
Stableize recoverWhileRelocating by expanding replicas at the end
Disable RestTable headers by default.