Add integration test for PluginManager

We want to make sure that Plugin Manager still downloading plugins from internet.
New tests requires internet access (`@Network` annotation has been added).

By default, tests annotated with `@Network` are not launched.

If you need to run these tests, use `-Dtests.network=true` option.

Closes #3894.
Support date math for `origin` decay function parsing

The parser used the method that was supposed to be used for parsing on
the indexing side that never supported date math.

Closes #3892
Fix toXContent of GeoShapeQueryBuilder

A missing endObject() resulted in serialization errors.

Closes #3878
remove irrelevant comment now that we pass the reuse strategy
Set queue sizes by default on bulk/index thread pools
Now that we properly fixed the ability to set the queue size on the index / bulk thread pool, we should actually set them to a somehow reasonable value to protect from users potentially overflowing our system.

I suggest defaults to be 50 for bulk, and 200 for indexing.

Also, set the thread pool for get, which we should set (in a similar value to a "read" queue size we have today).
closes #3888
Query String: Support multiple fields regexp queries
The query string query should apply regexp queries to execute on multiple fields as all the other queries.
closes #3901
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