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
[TEST] remove accidental double escape in yaml tests
[DOCS] Snapshot/restore: add more information about snapshot and restore monitoring
[BUILD] Check for tabs and nocommits in the code on validate

This commit adds checks for nocommit and tabs in the source code.
The task is executed during the validate phase and can be disabled via
`-Dvalidate.skip`
[BUILD] Generate source jars for tests

Closes #6125
[DOCS] Fixed typo in post-filter.asciidoc

Remove 'be' where it is not needed
[BUILD] exclude target dir from tab validation
Update nested-query.asciidoc

Added note that fields inside a nested query must be full qualified.
Docs: Updated CONTRIBUTING.md to provide more details about the PR process

Closes #6323
Docs: Updated index-modules/store and setup/configuration

Explain how to set different index storage types, and
added the vm settings required to stop mmapfs from running
out of memory

Closes #6327
More Like This Query: creates only one MLT query per field for all queried items.

Previously, one MLT query per field was created for each item. One issue with
this method is that the maximum number of selected terms was equal to the
number of items times 'max_query_terms'. Instead, users should have direct control
over the maximum number of selected terms allowed, regardless of the number of
queried items.

Another issue related to the previous method is that it could lead to the
selection of rather uninteresting terms, that because they were found in a
particular queried item. Instead, this new procedure enforces the selection of
interesting terms across ALL items, not within each item. This could lead to
search results where the best matching items share commonalities amongst the
best characteristics of all the items.

Closes #6404
Enable DiskThresholdDecider by default, change default limits to 85/90%

Fixes #6200
Fixes #6201