Update forbidden-apis to 1.5.1 and remove the relaxed missing classes error.
Merge remote-tracking branch 'upstream/master'
Merge branch 'master' of https://github.com/elasticsearch/elasticsearch
[TEST] check breaker reset after parent trip instead of trip count
Sort: Make `ignore_unmapped` work for cross-index queries.

Close #2255
Aggregations Added Filters aggregation

A multi-bucket aggregation where multiple filters can be defined (each filter defines a bucket). The buckets will collect all the documents that match their associated filter.

This aggregation can be very useful when one wants to compare analytics between different criterias. It can also be accomplished using multiple definitions of the single filter aggregation, but here, the user will only need to define the sub-aggregations only once.

Closes #6118
[Fix] CompletionMapper throws misleading error on null value

closes #6399
Fix missing break statement causing reroute serialization failure
closes #7135
Added a cli infrastructure

CliTool is a base class for command-line interface tools (such as the plugin manager and potentially others). It supports the following:
  - single or multi command tool
  - help printing infrastructure (based on help files)
  - consistent mechanism of parsing arguments (based on commons-cli lib)
  - separation of argument parsing and command execution (for easier unit testing)
  - terminal abstraction (will use System.console() when available)
Support "default" for tcpNoDelay and tcpKeepAlive
Allow to set the value default to network.tcp.no_delay and network.tcp.keep_alive so they won't be set at all, since on solaris, setting tcpNoDelay can actually cause failure
relates to #7115
fixed platform independent line separator in CliToolTests
Added CliToolTestCase to the test jar
Added CliToolTestCase's sub classes to the test jar
significant terms: add google normalized distance, add chi square

closes #6858
Add parameter to GET for checking if generated fields can be retrieved

Fields of type `token_count`, `murmur3`, `_all` and `_field_names` are generated only when indexing.
If a GET requests accesses the transaction log (because no refresh
between indexing and GET request) then these fields cannot be retrieved at all.
Before the behavior was so:

`_all, _field_names`: The field was siletly ignored
`murmur3, token_count`: `NumberFormatException` because GET tried to parse the values from the source.

In addition, if these fields were not stored, the same behavior occured if the fields were
retrieved with GET after a `refresh()` because here also the source was used to get the fields.

Now, GET accepts a parameter `ignore_errors_on_generated_fields` which has
the following effect:
- Throw exception with meaningful error message explaining the problem if set to false (default)
- Ignore the field if set to true
- Always ignore the field if it was not set to stored

This changes the behavior for `_all` and `_field_names` as now an Exception is thrown if a user
tries to GET them before a `refresh()`.

closes #6676
closes #6973
Docs: remove duplicate label
Dependencies: Randomized testing version bump
Percolator should cache index field data instances.

Before the index reader used by the percolator didn't allow to register a CoreCloseListener, but now it does, making it safe to cache index field data cache entries.
Creating field data structures is relatively expensive and caching them can save a lot of noise if many queries are evaluated in a percolator call.

Closes #6806
Closes #7081
[TEST] better failure message when back location is missing
MultiGet & MultiTermVector api: fail when using no routing and an alias to an index that has routing required (for that doc type)

Made sure that the routing required check is performed against the concrete index, added use of aliases to existing routing tests.

Taken the change to unify the failure message as well to this form: routing is required for [" + index + "]/[" + type + "]/[" + id + "]

Closes #7145