Create standard gc and memory_pool names for Jvm stats
fixes #4661
use proper logging
add joda-convert so missing annotations in joda-time will not cause failures when used as dependency
fixes #4660
Add warning phrase suggester's max_errors

large number can badly impact performance.
Expose headers list in RestRequest

Closes #4609
move RestRequest to be an abstract class, and expose local/remote address
[DOCS] Fixed duplicate ID in highlighting
Add more traces in case of failure when testing with actual plugins
remove default `_all` for `type` and `index` if these are missing in REST tests

If a type or path is missing in the REST test yaml file, it is
automatically replaced with _all. This makes it hard to test changes
in the api, for example adding the possibility to leave the index
blank in addition to _all and * in the uri.

closes #4657
[DOCS] Added documentation for SameShardAllocationDecider

Closes #4615
give the compiler more memory, otherwise it fails sometimes
improve buffered output
- use the same buffer size if wrapping a buffered output
- directly call flush on the checksum wrapper
[REST tests] Randomized REST path chosen if more than one is available with current parameters

Previously we would always take the same path if more than one was available
Disabling allow_explicit_index breaks bulk
fixes #4668
Disabling allow_explicit_index breaks bulk
fixes #4668
remove bloom from clear cache API, add id_cache
Multi data path config can cause a shard to be perceived as corrupted
Multi data path config support writes a file to a data location based on the available size (by default). There is a Lucene file called segments.gen that has the same name, and only in that case, we need to make sure we alway write it to the same data location, otherwise, the index will have multiple segments.gen files, and the shard can seem to be corrupted.

The message if this case happens is that segments_xxx file was not found, in which case, a find for segments.gen can yield multiple files. Deleting the segments.gen files will cause the shard to recover properly (as its an extra protection layer to resolve the segments header by Lucene)

Make sure the segments.gen file is writtne to the same directory every time
fixes #4674
Open files with encoding='utf-8' in release script
Expose min/max open file descriptors in Cluster Stats API

Also changes the response format of that section to:

```
 "open_file_descriptors": {
      "min": 200,
      "max": 346,
       "avg": 273
 }
```

Closes #4681
Added stream serialization logic for new min/max file descriptors

Relates to #4681