Add ability to snapshot replicating primary shards

This change adds a new cluster state that waits for the replication of a shard to finish before starting snapshotting process. Because this change adds a new snapshot state, an pre-1.2.0 nodes will not be able to join the 1.2.0 cluster that is currently running snapshot/restore operation.

Closes #5531
[TEST] Disable dummy documents for QueryRescorerTests#testEquivalence
Benchmark abort accepts wildcard patterns

This adds support for sending a list of benchmark names and/or wildcard
patterns when submitting an abort request. Standard wildcards such as:
"*", "*xxx", and "xxx*" are supported. Multiple benchmark names and
wildcard patterns can be submitted together as a comma-separated list
from the REST API or as a string array from the Java API.

Closes #6185
Don't use AllTokenStream when no fields were boosted

AllTokenStream, used to index the _all field, adds some overhead, but
it's not necessary when no fields were boosted or when positions are
not indexed the _all field.

Closes #6187 Closes #6219
[TEST] Allow to disable plugin loading from classpath
[TEST] Wait for all benchmarks to be started if more than one is used
Verify that the current node is still master before the reroute is executed and if that isn't the case skip reroute
Invoke listener when reroute fails.

Closes #6244
[TEST] skip benchmark tests for now
Move Benchmark release to 1.3
[BUILD] Fixed release notes script to work with github API again
Remove `DocIdSets.isFastIterator(DocIdSetIterator iterator)`.

This method was unused and its implementation wasn't correct since FixedBitSet
has its own iterator since Lucene 4.7.
XFilteredQuery default strategy prefers query first in the deleted docs case

Today we check if the DocIdSet we filter by is `fast` but the check fails
if the DocIdSet if wrapped in an `ApplyAcceptedDocsFilter` which is always
the case if the index has deleted documents. This commit unwraps
the original DocIdSet in the case of deleted documents.

Closes #6247
Fail queries that have two aggregations with the same name.

Close #6255
[TEST] Added test for #6256
[TEST] prevent dummy documents from being indexed in testSimpleQueryString() since scores are compared
Fix FieldDataWeighter generics to accept RamUsage instead of AtomicFieldData

The `FieldDataWeighter` allowed to use a concrete subclass of the caches
generic type to be used that causes ClassCastException and also trips the
CirciutBreaker to not be decremented appropriately.

This was tripped by settings randomization also part of this commit.

Closes #6260
Percolator: Fix assertion in percolation with nested docs

Assertion was triggered for percolating documents with nested object
in mapping if the document did not actually contain a nested object.
Reason:
MultiDocumentPercolatorIndex checks if the number of documents is
actualu >1. Instead we can just use the SingleDocumentPercolatorIndex
in this case.

closes #6263
More Like This Query: replaced 'exclude' with 'include' to avoid double negation when set.

Closes #6248
[DOCS] Fixed title levels in context suggester
[TEST] Use SuiteScopeTest annotation instead of ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)