Discovery: master fault detection fall back to cluster state thread upon error

With #7834, we simplified ZenDiscovery by making it use the current cluster state for all it's decision. This had the side effect a node may start it's Master FD before the master  has fully processed that cluster state update that adds that node (or elects the master master). This is due to the fact that master FD is started when a node receives a cluster state from the master but the master it self may still be publishing to other node.

This commit makes sure that a master FD ping is only failed once we know that there is no current cluster state update in progress.

Closes #7908
MLT Query: use minimum should match more extensive syntax

The minimum number of optional should clauses of the generated query to match
can now be set using the more extensive minimum should match syntax. This
makes the `percent_terms_to_match` parameter deprecated, and replaced in favor
to a new `minimum_should_match` parameter.

Closes #7898
Test: testNodeNotReachableFromMaster had a typo when choosing a non master node
[TESTS] Additional logging for `testThreadedUpdatesToChildBreakerWithParentLimit`
[TEST] create client nodes using node.client: true instead node.data: false and node.master: false

Create client nodes using `node.client: true` instead of `node.data: false` and `node.master: false`.

We should create client nodes in our test infra using the `node.client:true` settings as that is the one that users use, and the one that we use as well in `ClientNodePredicate` thus we end up not finding client nodes otherwise as they weren't created with the proper setting.

Updated also the `DataNodePredicate` so that `client: true` is enough, no need for `data: false` as well.

Closes #7911
MLT Query: Support for artificial documents

Previously, the only way to specify a document not present in the index was to
use `like_text`. This would usually lead to complex queries made of multiple
MLT queries per document field. This commit adds the ability to the MLT query
to directly specify documents not present in the index (artificial documents).
The syntax is similar to the Percolator API or to the Multi Term Vector API.

Closes #7725
[TEST] make sure that IndicesRequestTests is repeateable using the same seed

Remove the creation of a node client if not there before each test through setup method. `numClientNodes` makes sure that the client node gets created during suite cluster initialization.
1.3.3 release: add 1.3.4 version constant
[TEST] Use Shutdown API only if nodes are on 1.3.3 or newer to prevent shutdown problems
[BUILD] Release version should match latest version

This commit ensures that the latest version in our code is identical
to the project.version specified in the pom.xml file.
Nest original exception while creating NoShardAvailableActionException

Closes #7756
Fix optimize behavior with 'force' and 'flush' flags.

This does the following:
* Make 'force' flag only build a merge if the delegate MP returned no merges
* Add async handling for 'flush' when 'waitForMerges' is false
* Remove flush at the beginning of optimize.  This is something the user can
  do if they wish, before calling optimize.

closes #7886
closes #7904
closes #7920
Move forbidden api signature files to dev-tools.

This avoids the files showing up in the binary release, since .txt files
are copied.

closes #7917
closes #7921
[TEST] Mute MoreLikeThisActionTests#*ArtificialDocs
Core: go back to unbounded (scaling) thread pool for management threads (revert #7318)
1.3.4 release: add 1.3.5 Version constant
[TESTS] Be less strict about breaker child limit

Failing a parent breaker check is eventually consistent, so the test
could fail the parent limit, throw an exception, and before being
adjusted back down, increment more and throw a circuit breaking
exception on the child. This increases the child's limit, to ensure
we're only testing the parent limit.

It adds an additional assert to ensure that the breaker total is
correctly re-adjusted when the parent breaker has been tripped.
Docs: Document the most important changes to zen discovery.

Closes #7746
MLT Query/API: fix `minimum_should_match` bwc

Rounded to the nearest int allows to avoid issues in which (int) (0.59f * 100)
= 58, instead of 59%.
Changed the root rest endpoint ('/') to use cluster service

Instead of issuing a redundant cluster state request.

Closes #7899