Term Vectors: More consistent naming for term vector[s]

We speak of the term vectors of a document, where each field has an associated
stored term vector. Since by default we are requesting all the term vectors of
a document, the HTTP request endpoint should rather be called `_termvectors`
instead of `_termvector`. The usage of `_termvector` is now deprecated, as
well as the transport client call to termVector and prepareTermVector.

Closes #8484
DateMath: Fix semantics of rounding with inclusive/exclusive ranges.

Date math rounding currently works by rounding the date up or down based
on the scope of the rounding.  For example, if you have the date
`2009-12-24||/d` it will round down to the inclusive lower end
`2009-12-24T00:00:00.000` and round up to the non-inclusive date
`2009-12-25T00:00:00.000`.

The range endpoint semantics work as follows:
* `gt` - round D down, and use > that value
* `gte` - round D down, and use >= that value
* `lt` - round D down, and use <
* `lte` - round D up, and use <=

There are 2 problems with these semantics:
* `lte` ends up including the upper value, which should be non-inclusive
* `gt` only excludes the beginning of the date, not the entire rounding scope

This change makes the range endpoint semantics symmetrical.  First, it
changes the parser to round up and down using the first (same as before)
and last (1 ms less than before) values of the rounding scope.  This
makes both rounded endpoints inclusive. The range endpoint semantics
are then as follows:
* `gt` - round D up, and use > that value
* `gte` - round D down, and use >= that value
* `lt` - round D down, and use < that value
* `lte` - round D up, and use <= that value

closes #8424
closes #8556
Fix compile error from bad merge in #8556
Fix test failures caused by #8556
Fix wrong error messages in MultiMatchQueryParser.

Also fix a typo in the comment

Close #8597
Fix a typo in a javadoc comment in MapperService.

Close #8575
[TEST] all tests should extend ElasticsearchTestCase
Added utility method to CountRequestBuilder

Allows to add a query to CountRequestBuilder as a XContentBuilder.

Closes #8594
[STORE] Use Lucene checksums if segment version is >= 4.9.0

We started to use the lucene CRC32 checksums instead of the legacy Adler32
in `v1.3.0` which was the first version using lucene `4.9.0`. We can safely
assume that if the segment was written with this version that checksums
from lucene can be used even if the legacy checksum claims that it has a Adler32
for a given file / segment.

Closes #8587

Conflicts:
	src/main/java/org/elasticsearch/index/store/Store.java
	src/test/java/org/elasticsearch/index/store/StoreTest.java
Docs: Added new elasticsearch-river-kafka plugin to the documentation (uses latest version of Kafka, EL Bulk API, and supports concurrent requests)

Closes #8518
Docs: Remove reference to imaginary "no_docs_query"

No reference to it in the source code except this file.

Closes #8566
Fix error in documentation

Indexation does not fail if no timestamp provided when there is a default value defined in mapping.
Missing quote in the example
Docs: Update update-settings.asciidoc

Inconsistent indentation

Closes #8525
Core: Fix script fields to be returned as a multivalued field when they produce a list.

This change is essentially the same as #3015 but on script fields.

Close #8592
Switch to forbidden-apis 1.7
Core: upgrade to current Lucene 5.0.0 snapshot

Elasticsearch no longer unlocks the Lucene index on startup (this was
dangerous, and could possibly lead to corruption).

Added the new serbian_normalization TokenFilter from Lucene.

NoLockFactory is no longer supported (index.store.fs.fs_lock = none),
and if you have a typo in your fs_lock you'll now hit a StoreException
instead of silently using NoLockFactory.

Closes #8588
Remove NoneGateway, NoneGatewayAllocator, & NoneGatewayModule

Always use the LocalGateway* equivalents

We already check in the LocalGateway whether a node is a client node, or
is not master-eligible, and skip writing the state there. This allows us
to remove this code that was previously used only for tribe nodes (which
are not master eligible anyway and wouldn't write state) and in
tests (which can shake more bugs out)