[TEST] move NettyTransport*Tests to org.elasticsearch.transport.netty package

NettyTransport*Tests were previously in org.elasticsearch.test.transport and ended up being exported with the test jar. org.elasticsearch.transport.netty should be a better place for them together with exising tests.
[TEST] Fix the throttle test.
[TEST] move ClusterDiscoveryConfiguration to org.elasticsearch.test.discovery

ClusterDiscoveryConfiguration is part of the test infra and should get exported as part of the test jar. This is achieved by moving the class to org.elasticsearch.test.discovery

Closes #8337
Update zen.asciidoc

Tidied up the "No master block" asciidoc
Update cluster.asciidoc

Fixed asciidoc on cluster module page
[TEST] only assert consistency before closing
Catch NoSuchDirectoryException on consistency check - the directory might not be there anymore
Update cluster.asciidoc - fix invalid asciidoc
[TEST] add description of -Dvalidate.skip parameter
geo sort: remove unneded code from geo distance builder

The if statements are unneded and also wrong (second
else if can never be reached).

closes #8338
Switch to murmurhash3 to route documents to shards.

We currently use the djb2 hash function in order to compute the shard a
document should go to. Unfortunately this hash function is not very
sophisticated and you can sometimes hit adversarial cases, such as numeric ids
on 33 shards.

Murmur3 generates hashes with a better distribution, which should avoid the
adversarial cases.

Here are some examples of how 100000 incremental ids are distributed to shards
using either djb2 or murmur3.

5 shards:
Murmur3: [19933, 19964, 19940, 20030, 20133]
DJB:     [20000, 20000, 20000, 20000, 20000]

3 shards:
Murmur3: [33185, 33347, 33468]
DJB:     [30100, 30000, 39900]

33 shards:
Murmur3: [2999, 3096, 2930, 2986, 3070, 3093, 3023, 3052, 3112, 2940, 3036, 2985, 3031, 3048, 3127, 2961, 2901, 3105, 3041, 3130, 3013, 3035, 3031, 3019, 3008, 3022, 3111, 3086, 3016, 2996, 3075, 2945, 2977]
DJB:     [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 900, 900, 900, 900, 1000, 1000, 10000, 10000, 10000, 10000, 9100, 9100, 9100, 9100, 9000, 9000, 0, 0, 0, 0, 0, 0]

Even if djb2 looks ideal in some cases (5 shards), the fact that the
distribution of its hashes has some patterns can raise issues with some shard
counts (eg. 3, or even worse 33).

Some tests have been modified because they relied on implementation details of
the routing hash function.

Close #7954
[TEST] assign a name to the transport client created within ExternalTestCluster

The transport client created within ExternalTestCluster needs a name that follows our naming convention otherwise the thread leak filter barfs when running tests against an external cluster. Used "transport_client_external_{n}" where n gets incremented every time a new external cluster gets created. Updated thread leak filters rules to ignore threads created by such transport client.
Mappings: Generate dynamic mappings for empty strings.

This will help the exists/missing filters behave as expected in presence of
empty strings, as well as when using a default analyzer that would generate
tokens for an empty string (uncommon).

Close #8198
Tests: Temporarily ignore RoutingBackwardCompatibilityUponUpgradeTests.
Tests: Fix SimpleQueryStringTests.testSimpleQueryString assumption that depends on how documents are routed.
Gateway: Prefer recovering the state file that uses the latest format.

Currently MetaDataStateFormat loads the first available state file that has
the latest version. In case several files are available and some of them use
the new format while other ones use the legacy format, it should also prefer
the new format. This is typically useful when we upgrade the metadata when
recovering from the gateway: we might write the upgraded state with the new
format while the previous state used the legacy format, so we end up with
two files having the same version but using different formats.

Close #8343
Tests: Fix GroovyScriptTests to not depend on the way documents are routed to shards.
Tests: Fix more bad assumptions about routing in TransportTwoNodesSearchTests.
Revert "Tests: Temporarily ignore RoutingBackwardCompatibilityUponUpgradeTests."

This reverts commit 181bd6e56a2e6cfa1e0e85a5a7778cae5a8e62e1.
Test: make field `id` is defined in mapping, so sort can't fail