[Gateway] set a default of 5m to `recover_after_time` when any to the `expected*Nodes` is set

The `recovery_after_time` tells the gateway to wait before starting recovery from disk. The goal here is to allow for more nodes to join the cluster and thus not start potentially unneeded replications. The `expectedNodes` setting (and friends) tells the gateway when it can start recovering even if the `recover_after_time` has not yet elapsed. However, `expectedNodes` is useless if one doesn't set `recovery_after_time`. This commit changes that by setting a sensible default of 5m for `recover_after_time` *if* a `expectedNodes` setting is present.

Closes #6742
Only use IndexShard instance to lookup recovery status
make sure we use the instance itself to look it up, and not the shard id, as we might get another instance
leftover from #6825
Docs: fix merge docs to match the code (the max_thread_count default is 'aggressive' (favor SSDs))
Throw exception if function in function score query is null

closes #6292 #6784
Docs: remove orphan comma
[Tests] Enhance ZenUnicastDiscoveryTest

This started out as a simple correction to a missing setting problem, but go bigger into more general work on the ZenUnicastDiscoveryTets suite. It now works with both network and local mode. I also merge the different ZenUnicast test suites into a single place.

Closes #6835
Cleanup of the transport request/response messages

Now both TransportRequest and TransportResponse inherit from a base TransportMessage that holds the message headers and also now added the remote transport address (where this message came from).
Print trace log if not enough master nodes could be found.
[TEST] Ensure that one node is part of the cluster.
Docs: Fixed invalid word count in geodistance agg doc

Closes #6838
[Test] testHostOnMessages - only decrease latch after setting transport addresses
[TEST] wait for green before deleting mapping
[TEST] wait for green before deleting mapping
Snapshot/Restore: Add ability to restore indices without their aliases

Closes #6457
Core: Added missing return statements.

Closes #6841
[Test] renamed testListenerCallbacks to testLocalNodeMasterListenerCallbacks

Also clean up internal variable namings and fixed usage of wrong setting causing last node to not use the min_master_node settings.
[Test] one more tweak to testLocalNodeMasterListenerCallbacks
[RECOVERY] Increment Store refcount on RecoveryTarget

We should make sure we have incremented the store refcount
before we start the recovery on the recovyer target.

Closes #6844
[ENGINE] Mark store as corrupted before sending failed shard

We have to mark a shard as corrupted if necessary before the
shard failed event is fired ie. before we call the corresponding
listener in the engine. Otherwise the shard might be re-allocated
on the same node and just started up without being marked as corrupted.

Relates to #5924
[Transport] possible NPE during shutdown for requests using timeouts

Closes #6849