Internal: make sure that multi_percolate request hands over its context and headers to its corresponding shard requests

Closes #7371
Internal: make sure that multi_search request hands over its context and headers to its corresponding search requests

Closes #7374
Aggregations: Fixes pre and post offset serialisation for histogram aggs

Changes the serialisation of pre and post offset to use Long instead of VLong so that negative values are supported.  This actually only showed up in the case where minDocCount=0 as the rounding is only serialised in this case.

Closes #7312
Testing doc: describe -Dtests.heap.size and -Dtests.jvm.argline
Test: write heap dump per default

The heap dump is always interesting in case a test causes an OOM.
Per default is is written to target/JX/pidXYZ.hprof
[STORE] Allow to get metadata from arbitrary commit points

Today we always use the latest commit point to return the metadata from
the store. This might cause problems for snapshot and restore since in
contrast to recovery it won't prevent concurrent flushes (lucene commits).
This can lead to all kinds of interesting effects if we are snapshotting
while flushing. This change uses the IndexCommit to open the metadata snapshot
from the store which is consistent with what we snapshot.

Closes #7376
Docs: _ttl ignores all parameters except for enabled and default.

Also, add a line about that it can never be disabled after it was enabled.
_ttl: Report conflict when trying to disable _ttl

_ttl could never be disabled once it was enabled.
But when trying to, no conflict was reported.

relates to #777 and #7293

closes #7316
[TEST] only reset clients on nightly tests
resetting the clients on each test (in after test) makes the tests running, especially in network mode, much slower, since transport client needs to be created each time when randmized to be used. Also, on OSX, the excessive connections causes bind exceptions eventually which makes running the network tests much harder on it.
closes #7329
[TEST] filter out keep alive timer thread name
Keep-Alive-Timer is an internal Java thread that might be started, make sure to filter it out
[STORE] Ignore segments.gen on metadata snapshots

The segments.gen file is optional and might even change while we
read it. It's safer to just ignore that file in the snapshot instead.
[STORE] Remove unnecessary deduplication
[STORE] Improve recovery / snapshot restoring file identity handling

This commit changes the way how files are selected for retransmission
on recovery / restore. Today this happens on a per-file basis where the
rather weak checksum and the file length in bytes is compared to check if
a file is identical. This is prone to fail in the case of a checksum collision
which can happen under certain circumstances.
The changes in this commit move the identity comparsion to a per-commit / per-segment
level where files are only treated as identical iff all the other files in the
commit / segment are the same. This "all or nothing" strategy is reducing the chance for
a collision dramatically since we also use a strong hash to identify commits / segments
based on the content of the ".si" / "segments.N" file.

Closes #7351
[TEST] Trigger random flushes while snapshot is created