Recovery API

Adds a new API endpoint at /_recovery as well as to the Java API. The
recovery API allows one to see the recovery status of all shards in the
cluster. It will report on percent complete, recovery type, and which
files are copied.

Closes #4637
[TEST] Added index templates tests for broken mapping and invalid settings scenarios
[TEST] Update testNGramCopyField to reflect the effect of an index_analyzer
Make _exists_/_missing_ behave consistently with exists/missing.

`_exists_` and `_missing_` miss field name expansion that `exists` and
`missing` have, which allows these filters to work on `object` fields.

Close #5142
Add mustache templating to query execution.

Adds support for storing mustache based query templates that can later be filled
with query parameter values at execution time. Templates may be both quoted,
non-quoted and referencing templates stored in config/scripts/*.mustache by file
name.

See docs/reference/query-dsl/queries/template-query.asciidoc for templating
examples.

Implementation detail: mustache itself is being shaded as it depends directly on
guava - so having it marked optional but included in the final distribution
raises chances of version conflicts downstream.

Fixes #4879
Fixing license headers.
[TEST] Added whitespaces after brackets, colons and commas in nested percolator test.
The seed format is suite:method, clarified it in the docs.
[DOCS] Included the `_percolator` index breaking change to migration docs.
[TEST] Removed whitespace between } and ,
Wait for REST Service to start

When running tests for site plugins, it could happen that the REST Service is not fully started and not ready immediately to serve HTTP requests.
It gives `503 Service Unavailable` error in that case.

This patch will gives 5 seconds before failing the test.
Add thrid party license generation profile
Changed the caching of FieldDataSource in aggs to be based on field name + required Value Source type as a combi key (used to be only field name). This fixes a problem where multiple aggregations where defined on the same field, yet require different types of value sources.

Closes #5190
Disable RAM usage estimation on Lucene 3.x segments.

Close #5201
Add "locale" parameter to query_string and simple_query_string

Fixes #5128

Remove java 7 specific Locale functions, add "coming[1.1.0]" to documentation

add LocaleUtils utility class for dealing with Locale functions
Fix yamlBuilder() to return YAML builder instead of SMILE

Closes #5185
Remove useless URL instanciation
Fix possible exception in toCamelCase method
Fixed an issue where and IndexOutOfBoundsException was thrown when a date_/histogram aggregation was defined on unmapped field and also had a sub aggregation. The root cause there was that in such case, the estimated bucket count was 0, and the code was not designed to handle that well.

Closes #5179
Document the indices segments response format.