Terminate early when no terms left in the suggest string.

Closes #2817
Move applying alias filter to ContextSearch#preProcess()
Date math in query_string caches now()
fixes #2808
remove the field settings for query parser cache, not really relevant
Segments API: Add version & compound for each segment
closes #2823
Fix LeastUsedDistributor and ensure random distribution for multiple non-fs directories

If we cannot determine available space the fallback scenario is now to use random distribution instead of always using the last directory.

Fixes #2820
Added sort mode to geo distance sorting. Closes #1846
Optimize aliases processing

Closes# 2832
Fixed `bool` filter bugs:
 * In the case only should clauses were specified with specific type of filters, the first clause determined which documents matched.
 * In some cases the minimum at least 1 should clause should match behaviour was broken.
If match then go to next doc
{sort: "field"} throws misleading errors
fixes #2835
fail on malformed sort
Added FST based FieldData implementation holding all data in a per segment FST.
This commit factors our a common API for BytesValues based impl to shared code and reduce code duplication.
Refactor BytesValues to be reused as the interface for HashedBytesValues and remove HashBytesValues.
Remove getValues from numeric and string field data & clean up geo field data
clean-up long values
clean-up double values
remove StringValues in favor of BytesValues
optimize matcher reset to not create unnecessary string objects