test variations of multi field query string queries
[DOCS] Render common options on the same page
[DOCS] Reorganised common API conventions
Subclass ElasticSearchTestCase across the board

All tests in the test package should subclass ESTestCase to benefit from
random time-zones and locale etc.
s/ElasticSearch/Elasticsearch in src/test
Use smart client in busy waiting loop

This test fails since we use random transport clients. Let's see
if it stabelizes with a smart client in the loop and debug further
if it helps.
Added missing builder.endObject calls
Retry blocking if async indexing is rejected due to queue size

Some tests use AbstractIntegrationTest#indexRandom which sometimes uses async
indexing. This can easily run into queue size based rejections on a slow
box. In that case we should retry blocked indexing.
Randomly use Bulk in AbstractIntegrationTest#indexRandom
Segments API: Support merge id on segments (groups segments being merged)
Return a merge_id element in each segment of the segments API, allowing to group segments that are being merged as part of a single merge and indicate which ones are being merged now.
closes #3904
The `has_child` query's inner query now is wrapped in a filtered query with the child type as filter, this prevents other children from being returned as hit.
Extended the specialized simplified mapping source method to support metadata mapping fields. These fields can just specified as normal fields, but will automatically be placed as top level mapping field.

Closes #3818
move tests to unit test
enable delimited payload token filter

closes #3859
fix bug in term vector api, payloads were not handled correctly when some where missing

The array holding the payloads (TermVectorFields.payloads) is reused for each token. If the
previous token had payloads but the current token had not, then the payloads of the previous
token were returned, because the payloads of the previous token were never invalidated.
For example, for a field only contained two tokens each occurring once, the first having a
payload and the second not, then for the second token, the payload of the first was returned.

closes #3873
[DOCS] Add doc for delimited payload token filter
Add match query support for stacked tokens

SynonymFilters produces token streams with stacked tokens such that
conjunction queries need to be parsed in a special way such that the
stacked tokens are added as an innner disjuncition.

Closes #3881
[DOCS] Note that cutoff_frequency doesn't handle stacked tokens gracefully
Disable testSegmentsWithMergeFlag with AwaitsFix
index another doc in test and flush to force merge
Replaced hardcoded boolean value with correct parameter

Implemented changes suggested by review.

Closes #3898