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.
Node clients in tests use now the same naming convention as ordinary nodes (node#)
Added client_ prefix to node clients created by TestCluster (client_node_#)
Added cluster state version to the debug logging of shards instances used in search.