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
msearch REST API should support source parameter

As stated in documentation, we should support `?source=` parameter in msearch 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"
}'

cat requests
{}
{"query" : {"match_all" : {}}}

curl -XGET localhost:9200/_msearch --data-binary @requests

curl -XGET "http://localhost:9200/test/type/_mget?source=%7B%7D%0A%7B%22query%22%3A%7B%22match_all%22%3A%7B%7D%7D%7D%0A"
```

Closes #4901.
percolate REST API should support source parameter

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

This is how to reproduce it:

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

curl -XPUT "http://localhost:9200/test/.percolator/1" -d'
{
"query" : {
"match" : {
"foo" : "bar"
}
}
}'

# This one works
curl -XPOST "http://localhost:9200/test/message/_percolate" -d '{
"doc" : {
"foo" : "bar is in foo"
}
}'

# This one gives: BroadcastShardOperationFailedException[[test][2] ]; nested: PercolateException[failed to percolate]; nested: ElasticsearchIllegalArgumentException[Nothing to percolate];
curl -XGET "http://localhost:9200/test/message/_percolate?source=%7B%22doc%22%3A%7B%22foo%22%3A%22bar%20is%20in%20foo%22%7D%7D"
```

Closes #4903.