Add heap used percentage to _cat/nodes.

Closes #4020.
Add ES version to _cat/nodes.
Fix bug in TransportShardReplicationOperationAction retry mechanism

This issue was causing some index requests against shards in POST_RECOVERY state to hang.
The +index pattern without a wildcard in the index list is handled inconsistently

Fixes #3979
RegexpQueryBuilder now implements MultiTermQueryBuilder

This allows the RegexpQueryBuilder to be used in span queries

Added tests for all span multi term queries.
Also updated the documentation and removed mentioning of numeric range
queries for span queries (they have to be terms).

Closes #3392
upgrade randomized testing to 2.0.12
Simplify FieldData API

Removing #getValue and #hasValue to have a simple and consistent API
for multiple values.
Improve new field mapping introduction performance
Improve the introduction of new fields into the concrete parsed mappings by not relying on immutable maps and copying over entries, but instead using open maps (which will also use less memory), and using clone to perform the copy on write logic
add reference for ember-data-elasticsearch-kit to integrations page
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