Introduce elasticsearch.in.bat (i.e. es.in for Windows)

Break-out common functionality between elasticsearch.bat and service.bat
Relates #8237

(cherry picked from commit 87095e79534bcef97b2b275322c924bd96b34e3b)
Improve handling of multicast binding exceptions

In case the multicast binding fails (due to socket errors), abort zen
pinging code and throw a better error message
Relates #8225

(cherry picked from commit f819cff77a0ef95b340afc2f22e3464283803960)
Enabled overriding the request headers in the clients

One can set the headers sent with request by the clients by setting the `request.headers` setting. This commit enables overriding any such set headers directly on the requests.
Use the simpler command line syntax in the Debian init script

It's definitely not a blocker, but it would be nice to be consistent.

Closes #5033
Added missing percolate API parameters (percolate_routing, percolate_preference) to the REST API Spec

Closes #7173
[ENGINE] Add current translog ID to commit meta before closing

Today we simply close the IW when we have to open a new one if ie.
we change merge settings. Yet, the API is deprecated and under the hood
it commits the IW. For safety we should add the current translog ID and
use rollback instead to not wait for merges.
s/MapBuilder/singletonMap in InternalEngine
Tests: stop printing all thread stacks on failure: it's too noisy
Test: fix test to optimize and flush in the end to try to prevent 'Delete Index failed - not acked'
Completion Suggester: Fix CompletionFieldMapper to correctly parse weight
 - Allows weight to be defined as a string representation of a positive integer

closes #8090
[TEST] initialize SUITE | GLOBAL scope cluster in a private random context

Today any call to the current randomized context modifies the random
sequence such that cluster initialization is context dependent. If due
to an error for instance a static util method is used like `randomLong`
inside the TestCluster instead of the provided Random instance all
reproducibility guarantees are gone. This commit adds a safe mechanism
to initialize these clusters even if a static helper is used. All none
test scope clusters are now initialized in a private randomized context.
[TEST] Move rebalance setting to the index level / pass it on index creation
[SCRIPTS] GetIndexedScript call can deadlock

GetIndexedScript can deadlock since they perform blocking operation
on the network thread. This commit moves the blocking to an async operation
MLT Field Query: remove it from master

The MLT field query is simply replaced by a MLT query set to specififc field.
To simplify code maintenance we should deprecate it in 1.4 and remove it in
2.0.

Closes #8238
Core: Fix location information for loggers

This change corrects the location information gathered by the loggers so that when printing class name, method name, and line numbers in the log pattern, the information from the class calling the logger is used rather than a location within the logger itself.

Closes #5130
Recovery: change check for finished to a ref count check

we current check that the recovery is not finished when people access the status local variables. This is wrong and we should check for the refcount being > 0 as it is OK to use the status after it has marked as finished but there are still on going, in-flight reference to it.

Relates to #8092

Closes #8271
[TEST] Added awaits fix to failing LoggingConfigurationTests
[TEST] added additional logging to LoggingConfigurationTests

This is to try to determine why the test passes locally but not on the CI builds
Docs: Updated Perl client page to mention async client

Closes #8012
Update source-field.asciidoc

very minor typofix

Closes #8066