make test less evil
[TEST] Added backwards compatibility check to control whether to enable client nodes or not within TestCluster

Our REST backwards compatibility tests need to be able to disable client nodes within the TestCluster when running older tests that assume client nodes are not around.
Docs: Documented the cjk_width and cjk_bigram token filters
Docs: Added custom-analyzer equivalents of all the language analyzers
Docs: Fixed some errors on the language analyzers page
Docs: Fixed a bad ref on lang analyzers page
Docs: Fixed bad ref on cjk_width/bigram pages
Change the top_hits to be a metric aggregation instead of a bucket aggregation (which can't have an sub aggs)

Closes #6395
Closes #6434
Fielddata: EmptyOrdinals#getMaxOrd() should return 0 instead of 1, since ordinals are zero based since #5871.
Aggregations: if maxOrd is 0 then use noop collector

Before the OrdinalsCollector was used and this leads to a ArrayIndexOutOfBoundsException

Closes #6413
TransportClient: Improve logging, fix minor issue

In order to return more information to the client, in case a TransportClient
can not connect to the cluster, this commit adds logging and also returns the
configured nodes in the NoNodeAvailableException

Also a minor bug has been fixed, which propagated exceptions wrong, so that an
invalid request was actually tried on every node, if a regular connection failure
on the first node had happened.

Closes #6376
Stats: Bugfixes and enhancements to indices stats API

Bugs:
* "groups" and "types" were being ignored
* "completion_fields" as wildcards were not being resolved to fieldnames

Enhancements:
* Made "groups" and "types" support wildcards
* Added missing tests

Closes #6390
Tests: Fixed indices.stats types test when run with replicas
Tests: Java test runner can't handle array responses
Tests: Fixed CompletionSuggester test which relied on a bug
The StemmerTokenFilter had a number of issues:

* `english` returned the slow snowball English stemmer
* `porter2` returned the snowball Porter stemmer (v1)
* `portuguese` was used twice, preventing the second version from working

Changes:

* `english` now returns the fast PorterStemmer (for indices created from v1.3.0 onwards)
* `porter2` now returns the snowball English stemmer (for indices created from v1.3.0 onwards)
* `light_english` now returns the `kstem` stemmer (`kstem` still works)
* `portuguese_rslp` returns the PortugueseStemmer
* `dutch_kp` is a synonym for `kp`

Tests and docs updated

Fixes #6345
Fixes #6213
Fixes #6330
Docs: Corrected the use of keyword_marker on the lang analyzers
Docs: Use the "stemmer" token filter for the english analyzer, to be consistent
Highlighting: make HighlightQuery class public
Docs: Hunspell tidied

Tidied some formatting