Allow -SNAPSHOT versions to be parsed by Version.fromString
Internal: temporarily ban buggy IOUtils methods with forbidden

Closes #8375
[STORE] Drop pre 0.90 compression BWC

Pre 0.90 indices need to be upgraded to run with 2.0
we can drop the stored field compression BWC.
Take percentage watermarks into account for reroute listener

Fixes an issue where only absolute bytes were taken into account when
kicking off an automatic reroute due to disk usage. Also randomized the
tests to use either an absolute value or a percentage so this is tested.

Also adds logging for each node over the high and low watermark every
time a new cluster info usage is gathered (defaults to every 30
seconds).

Related to #8368
Fixes #8367
[TEST] fix term_vector realtime test to call wait for green and use no replicas

If a shard (e.g. replica) gets initialized after we indexed the document it gets refreshed internally and we find the doc and its term_vectors, thus the test fails
Tests: log how long IndexWriter.rollback took, and when MocmFSDirectory service started check index
Core: add debug logging to InternalEngine.close
Update multi-get.asciidoc

Documented that the fields parameter can be passed in the query string.

Closes #4006
Docs: Improve the exists/missing filters documentation

Closes #7274
Update datehistogram-aggregation.asciidoc

Clarified use of fractional time units in the date histo agg.

Closes #7957
typo fixes - https://github.com/vlajos/misspell_fixer

Closes #8323
fix mention of Apache License, version 2.

Closes #8400
Internal: harden recovery for old segments

When a lucene 4.8+ file is transferred, Store returns a VerifyingIndexOutput
that verifies both the CRC32 integrity and the length of the file.

However, for older files, problems can make it to the lucene level. This is not great
since older lucene files aren't especially strong as far as detecting issues here.

For example, if a network transfer is closed on the remote side, we might write a
truncated file... which old lucene formats may or may not detect.

The idea here is to verify old files with their legacy Adler32 checksum, plus expected
length. If they don't have an Adler32 (segments_N, jurassic elasticsearch?, its optional
as far as the protocol goes), then at least check the length.

We could improve it for segments_N, its had an embedded CRC32 forever in lucene, but this
gets trickier. Long term, we should also try to also improve tests around here, especially
backwards compat testing, we should test that detected corruptions are handled properly.

Closes #8399

Conflicts:
	src/main/java/org/elasticsearch/index/store/Store.java
	src/test/java/org/elasticsearch/index/store/StoreTest.java
more debug logging
Docs: Fix some typos, and sentence structure.

Closes #8404
[STORE] Calculate Alder32 Checksums for legacy files in Store#checkIntegrity

Previously we didn't calculate this checksums even though we have a checksum
to compare. Since we now also verify checksums for legacy files #checkIntegrity
should also calculate the legacy checksums.

Closes #8407
[STORE] Synchronize operations that modify file mappings on DistributorDirectory

The rename(String, String) method doesn't allow this implementation to use a simple
concurrent map. There is a race during a rename operation where files are not fully
renamed but already visible via #listAll(). This inconsistency can lead to problems
when opening commit points since the pending_segments_N as well as segments_N are visible
but not yet atomically renamed.

Yet, non of the methods that are synced are long running such that adding sychronization
doesn't introduce bottlenecks here. The Direcotry#sync(...) method is not synchronized since
it doesn't change any mapping nor does it depend on the mapping.
[PING] Don't bubble up exception if we are shutting down and ping schedules get rejected
[STORE] Use DistributorDirectory only if there are more than one data direcotry

We don't need the overhead of DistributorDirectory if there is only a single directory
in the distributor.
first review round