Added new iteration to RecoveryWhileUnderLoadTests

We want to check whether the issue causing the test to fail would be fixed by an additional refresh or not
Search action now log in debug what shards/nodes were used before moving to second phase
Added  a debug log for executing a refresh request on a shard.
Previously added logging in TransportRefreshAction caused NPE if search shards had errors (or was not yet started/assigned)
Better formatting for logging in TransportRefreshAction
Restructured the transport action code for multi percolate api.
Add 'min_input_len' to completion suggester

Restrict the size of the input length to a reasonable size otherwise very
long strings can cause StackOverflowExceptions deep down in lucene land.
Yet, this is simply a saftly limit set to `50` UTF-16 codepoints by default.
This limit is only present at index time and not at query time. If prefix
completions > 50 UTF-16 codepoints are expected / desired this limit should be raised.
Critical string sizes are beyone the 1k UTF-16 Codepoints limit.

Closes #3596
Improved logic that removes top-level folder from archives when needed

Whether we remove the top-level folder from the archive depends now on the zip itself and not on where it was downloaded from. That makes it work installing local files too.

Closes #3582
Replaced localhost with 127.0.0.1 in PluginManagerTests
test for primary allocating over replicas
still marked as await fix, requires investigation
Added errorStream null check in HttpClient (used for testing purpose)
Switched PluginManagerTests to use default plugins location and added check that http connector is working properly
Fixed PluginManagerTests to connect to the right node when checking if the plugin is available
[DOCS] Chunk depth now configurable, so [float] not required
[DOCS] link: prefix not required when using {ref} attributes
[DOCS] Fixed an out of sequence header in the Groovy docs
Improved test

Removed needless delete lines, added log lines and shared ensureGreen calls
Prevent ShardAllocator to modify the unassigned while running allocations

The unassinged list is used to make allocation decisions but is currently
modified during allocation runs which causes primaries to be throttled
during allocation. If this happens newly allocated indices can be stalled
for a long time turning a cluster into a RED state if concurrent relocations
and / or recoveries are happening.

Closes #3610
Removed ThreadLocals class and its references, since it is no longer needed.
[DOCS] Removed outdated new/deprecated version notices
Remove UUID class in favor of Strings util methods
Clean up warnings in commons package.