[CLIENT] Unknown node version should be a lower bound

Today when we start a `TransportClient` we use the given transport
addresses and create a `DiscoveryNode` from it without knowing the
actual nodes version. We just use the `Version.CURRENT` which is an
upper bound. Yet, the other node might be a version less than the
currently running and serialisation of the nodes info might break. We
should rather use a lower bound here which is the version of the first
release with the same major version as `Version.CURRENT` since this is
what we officially support.

This commit moves to use the minimum major version or an RC / Snapshot
if the current version is a snapshot.

Closes #6894
[TEST] Randomize FS Translog implementation

Closes #6658
[TEST] Randomize Preference in search requests

Closes #6863
[DOCS]: Added link to saltstack module
Better message for invalid internal transport message format
closes ##6916
Docs: Add links to client helper classes for bulk/scroll/reindexing
Plugin Manager: Properly quote $JAVA in bin/plugin

The all new Oracle Java 7 on OSX has a space in its path
resulting in bin/plugin failing to work

Closes #5765
[TESTS] Switch more tests to ElasticsearchSingleNodeTest.

This avoids loading modules manually all the time.
Plugins: Introduced pluggable filter chain to be able to filter transport actions execution

It's now possible to inject action filters from plugins via `ActionModule#registerFilter` through the following code:

```
    public void onModule(ActionModule actionModule) {
          actionModule.registerFilter(MyFilter.class);
    }
```

Also made `TransportAction#execute` methods final to enforce the execution of the filter chain. By default the chain is empty though.

Note that the action filter chain is executed right after the request validation, as the filters might rely on a valid request to do their work.

Closes #6921
Netty: Refactoring to make MessageChannelHandler extensible

Small refactorings to make the MessageChannelHandler more extensible.
Also allowed access to the different netty pipelines

This is the fix after the first version had problems with the HTTP
transport due to wrong reusing channel handlers, which is the reason
why tests failed.

Relates #6889
Closes #6915
[TEST] an active shard might also be relocating
[TEST] Add SuppressSysoutChecks to DistributorDirectoryTest
Aggregations: Add `children` bucket aggregation that is able to map buckets between parent types and child types based on top of the parent/child support.