Also resend shard started message if shard state is in POST_RECOVERY and master thinks it's initializing.

Closes #4009
Add back hashed BytesValues optimization that got lost in a previous commit.

Some FieldData consumers require hash values per byte. We provide an optimization
that allows to cache the hashes internally if the consumer knows that they are needed
this optimization got lost in a previous commit. This commit adds them back and folds
the dedicated method into AtomicFieldData#getBytesValues(true|false)
minor improvement to FullRollingRestartTests failure output
throw index already exists failure when it exists as alias on creation
make sure to throw the already exists exception, so when indexing into an alias, and it has not propagated yet through the cluster state, it will end up being ignored if it already exists
[DOCS] Fixed a typo
[DOCS] Added a version flag to percolation
indices cluster state service should execute as one of the first listeners
its preferable to execute the indices cluster state service as quickly as possible, as one of the first listeners, so it will apply the cluster state to the local state
potentially, it should even execute before it state is "visible" (through the state call), but that's another change...
Add _cat/allocation/{nodes}.

Visualizes how shards distribute across the cluster.

% curl localhost:9200/_cat/allocation
shards diskUsed diskAvail diskRatio ip        node
     2   85.6gb   379.4gb     22.6% 127.0.0.1 MacTaggert, Moira
     2   85.6gb   379.4gb     22.6% 127.0.0.1 Jarvis, Edwin

% curl localhost:9200/_cat/allocation/Jar\*
shards diskUsed diskAvail diskRatio ip        node
     2   85.6gb   379.4gb     22.6% 127.0.0.1 Jarvis, Edwin
Add a GetFieldMapping API

This new API allows to get the mapping for a specific set of fields rather than get the whole index mapping and traverse it.
The fields to be retrieved can be specified by their full path, index name and field name and will be resolved in this order.
In case multiple field match, the first one will be returned.

Since we are now generating the output (rather then fall back to the stored mapping), you can specify `include_defaults`=true on the request to have default values returned.

Closes #3941
Add node name & ip to _cat/recovery.

Closes #4016.
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)