[TEST] randomly added node.bench=true to client node in test cluster and re-enabled REST benchmark tests based on number of bench nodes available

In our REST tests we already have support for features and skip sections that allow to skip tests if a feature is not supported.
We can then add a skip section based on the benchmark feature to the benchmark tests and execute them only when they are supported, knowing that they need at least a node with node.bench settings within the cluster. We can check that this requirement is met by calling the nodes info api.

This way we can dynamically decide whether to execute those tests or not and we don't need to have a node.bench around all the time. In fact, given that the REST tests use the GLOBAL cluster, we want to be able to randomize settings as much as possible and run tests against default settings as well. Also, this mechanism can be easily supported by the external cluster implementation that is used during the release process.

Introduced ability to disable benchmark nodes which is needed by BenchmarkNegativeTest.
[TEST] Add test specifying fields field /_cat/fielddata REST test
don't call isFinite from XAnalyzingSuggester; re-enable test on Java 8
[TEST] Fix for benchmark tests

- Fix bug where repeatedly calling computeSummaryStatistics() could
  accumulate some values incorrectly
- Fix check for number of responsive nodes on list is <= number of
  candidate benchmark nodes
- Add public getters for summary statistics
- Add javadoc for new getters
- Add javadoc comments about API use
- Improve abort and status tests by calling awaitBusy() to wait for jobs
  to be completely submitted before testing them
Fixed typos in FieldSortBuilder
enable dynamic scripts in release node, otherwise REST tests will fail

Relates to #5853
[TEST] Aborting a non-existent benchmark throws a missing request
[TESTS] Tentative fix of BigArrays byte-accounting checks.
Return missing (404) is a scroll_id is cleared that no longer exists.

Closes #5730
Update shade-plugin to 2.3

Shade-plugin 2.2 does not work with JDK8 (see http://jira.codehaus.org/browse/MSHADE/fixforversion/19828)
[TESTS] Disable BenchmarkIntegrationTest#testSubmitBenchmark until it is fixed.
[TEST] Make sure all shards are allocated before the delete type is being executed.
More Like This: Fix correct use of size and from parameters

More Like This API would not take into account 'size' and 'from' in request body parameters.
Instead these values would always be overriden by the default values of REST parameters
'search_size' and 'search_from'.

Closes #5981
Fixed validate query parsing issues

Made sure that a match_all query is used when no query is specified and ensure no NPE is thrown either.
Also used the same code path as the search api to ensure that alias filters are taken into account, same for type filters.

Closes #6111 Closes #6112 Closes #6116
Detect unsupported fields after query in validate query api

The validate API was failing to reject JSON input that had unsupported
fields placed after a supported field. This was causing invalid requests
to be reported as valid.

Fixes #5685
restored @Test annotation in SimpleValidateQueryTests
Made the include and exclude support for terms and significant terms aggregations based on global ordinals.

Closes #6000
[TEST] made catch request more accurate in REST tests runner

Excluded 404, 403 and 409 status codes from the catch request as they have their own specific catch codes
[TESTS] Fix MinDocCountTests.

The new include/exclude support for global ordinals didn't exclude terms in
`buildAggregation` (which is required if minDocCount is 0).
[TEST] cat.recovery regex still causing occasional JVM regex stackoverflows.
Try making the capture possessive to prevent recursion