[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
[DOCS] Update to the new {index}/_mapping/{type} format
Add back string op type to IndexRequest
This was removed by accident I think, and it breaks backward comp. on the Java API in minor 1.3 version
closes #7387
Use empty BytesRef if we read from <= 1.4.0
[BUILD] Randomize JVM heapsize between 512 and 1024m
Dependencies: Upgrade to Apache HttpComponents client 4.3.5

Closes #7342
[TEST] Muted tests
[TEST] copied delete bw comp tests to usual intergration tests

 Added AwaitsFix to testDeletebyQuery and testDeleteRoutingRequired while checking if they fail as usual integration tests.
Internal: move index templates api back to indices category and make put template and create index implement IndicesRequest

Closes #7378
[DOCS] Document the contracts of the RootMapper API.

Close #7400
More Like This Query: defaults to all possible fields for items

Items with no specified field now defaults to all the possible fields from the
document source. Previously, we had required 'fields' to be specified either
as a top level parameter or for each item. The default behavior is now similar
to the MLT API.

Closes #7382
[ENGINE] Force optimize was not passed to shard request

The force flag to trigger optimiz calls of a single segment for upgrading
etc. was never passed on to the shard request.

Closes #7404