Parallelized rivers creation in RiverTests#testMultipleRiversStart

Rivers are now registered concurrently from separate threads, one per river.
Make shard balancing deterministic if weights are identical

It happens to be the case that the iteration order of a HashMaps
keyset might be different across runs. This can cause undeterministic
results in shard balancing if weights are identical and multiple shards
of the same index are eligable for relocation. This commit adds
a tie-breaker based on the shard ID to prioritise the lowest shard
ID. This also makes `AddIncrementallyTests#testAddNodesAndIndices`
reproducible.

Closes #4867
Move provided lucene-expression jar below the test-framework

Having a dep that refrences lucene-core before the test framework
confuses some runners.
ClearScrollRequest should set a type parameter

Since ActionRequest requires a bounded type parameter.
Throw exception if `cluster.name` is specified in TestCluster node settings

We rely on the `cluster.name` setting to be the same across all nodes
and transport clients etc. If a node setting contains `cluster.name`
the test might not work if a random transport client is swapped
in. Passing such a configuration should result in an exception since
it's clearly an illegal state.
Re-Sort config/names
Adjust test to match the expected results from master since the underlying data changed
Don't throttle the translog stage of recovery
After copying the index files (which are throttled), we currently throttle the translog as well. The translog phase3 part is performed under a lock, so its better not to throttle it at all, and move it as fast as possible.
mget REST API should support source parameter

As stated in documentation, we should support `?source=` parameter in mget REST operations.

This is how to reproduce it:

```sh
curl -XDELETE "http://localhost:9200/test"

curl -XPOST "http://localhost:9200/test/type/1?refresh" -d'{
    "foo": "bar"
}'

curl -XPOST "http://localhost:9200/test/type/_mget" -d'{
    "ids": ["1"]
}'

curl -XGET "http://localhost:9200/test/type/_mget?source=%7B%22ids%22%3A%20%5B%221%22%5D%7D"
```

Closes #4892.
Revert mget yaml test changes

Relative to #4892
Revert mget yaml test changes

Relative to #4892
Bulk: Failed preparsing does not fail whole bulk request

If a preparsing of the source is needed (due to mapping configuration,
which extracts the routing/id value from the source) and the source is not
valid JSON, then the whole bulk request is failed instead of a single
BulkRequest.

This commit ensures, that a broken JSON request is not forwarded to the
destination shard and creates an appropriate BulkItemResponse, which
includes a failure.

This also implied changing the BulkItemResponse serialization, because one
cannot be sure anymore, if a response includes an ID, in case it was not
specified and could not be extracted from the JSON.

Closes #4745
move msearch to use atomic array instead of synchronize
Add missing PHRASE flag for simple_query_string

Closes #4911
[TEST] Improved IndexAliasesTests

more assertAcked, removed TODO and needless sleep
Improved CreateIndexRequest and CreateIndexRequestBuilder javadocs
[TEST] Added REST tests for create index api
[TEST] Adapted REST tests for create index api to 0.90 branch
[DOCS] unified index settings info and added warmers section in create index docs
build randomization script merge main -> 0.90

merge latest build_randomization.rb from main; relate to work to make
jenkins elastic search server randomization branch sensitive