[Lucene] Upgrade to Lucene 4.10

Closes #7584
[TEST] Allow SingleNodeTest to reset the node if really needed after test
[STORE] Simplify reading / writing from and to BlobContainer

BlobContainer used to provide async APIs which are not used
internally. The implementation of these APIs are also not async
by nature and neither is any of the pluggable BlobContainers. This
commit simplifies the API to a simple input / output stream and
reduces the hierarchy of BlobContainer dramatically.
NOTE: This is a breaking change!

Closes #7551
RestAPI: Add explicit error when PUT mapping API is given an empty request body.

closes #7536
closes #7618
Internal: Change LZFCompressedStreamOutput to use buffer recycler when allocating encoder

closes #7613
Extended ActionFilter to also enable filtering the response side

Enables filtering the actions on both sides - request and response. Also added a base class for filter implementations (cleans up filters that only need to filter one side)

Also refactored the filter & filter chain methods to more intuitive names
Docs: Update cardinality-aggregation.asciidoc

Closes #7516
[TEST] Close input stream in test to not upset windows
RestAPI: Change validation exceptions to respond with 400 status instead of 500.

Validation errors are clearly in the realm of client errors (a program
with the request).  Thus they should return a 4xx response code.

closes #7619
Docs: Wrong class name

Was QFilterBuilders, should be FilterBuilders.

Closes #7611
Docs: Added explanation of how to do multi-field terms agg

Closes #5100
Docs: Update span-not-query.asciidoc

The example given does not clearly explain what the query does.

Closes #7049
Docs: Adds missing explanation to multi-match

Closes #7281
Docs: Update prefix-query.asciidoc

Typo (missing word)

Closes #7283
Docs: Clarify that refresh on get/update/delete just refreshes the relevant shards

Closes #7359
Docs: Update scripting.asciidoc

Clarify that doc[...] does not return objects

Closes #7384
Docs: Clarify that refresh on update just refreshes the relevant shards
Docs: Update regexp-syntax.asciidoc

Closes #7419
Docs: fixed typo

Closes #7544
Core: remove built-in support for Lucene's experimental codecs

Lucene's experimental codecs (from the codecs module) do not provide
backwards compatibility and are free to change from release to
release.  When they do change, they typically cannot in general read
older indices and the resulting exceptions look like index corruption.
So, we are removing built-in support for them to prevent applications
from choosing one and then seeing strange exceptions on upgrade.

Closes #7566

Closes #7604