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)
[TEST] cat.allocation/One index: allow leading spaces in unassigned shards lines
Cut over to Lucene's TopDocs#merge for shard topdocs sorting.

Closes #6197
Add number of shards statistic to PercolateContext instead of throwing exception.
Certain features like significant_terms aggregation rely on this statistic for sizing heuristics.

Closes #6037
Closes #6123
[TEST] indices.open REST tests need 0 replicas

With replicas the search requests might go to shards that are not ready, since we have a wait for yellow. We can now switch to wait for green as well.
Aggregations: Fixed conversion of date field values when using multiple date formats

When multiple date formats are specified using the || syntax in the field mappings the date_histogram aggregation breaks.  This is because we are getting a parser rather than a printer from the date formatter for the object we use to convert the DateTime values back into Strings.  Simple fix to get the printer from the date format and test to back it up

Closes #6239
[BUILD] pass java exe to plugin install command
[TEST] Use _uid sort field as tie, so that hits with the same score are sorted in the same way in both search responses.
More Like This Query: allow for both 'like_text' and 'docs/ids' to be specified.

Closes #6246
Update Documentation Feature Flags [1.2.0]
[SPEC] Removed the URL parameter `indices_boost` from the "Search" API

Related: elasticsearch/elasticsearch-ruby#29
Highlight fields in request order

Because json objects are unordered this also adds an explicit order syntax
that looks like
    "highlight": {
        "fields": [
            {"title":{ /*params*/ }},
            {"text":{ /*params*/ }}
        ]
    }

This is not useful for any of the builtin highlighters but will be useful
in plugins.

Closes #4649