upgrade to guava 16.0
also fixes #4830
Document `index.shard.check_on_startup`.
[SPEC] Renamed termvectors.* to termvector and mtermvectors
and fixed the YAML syntax errors
[TEST] Added newline at end of percolate tests
[SPEC] Specify bulk format for body in bulk, msearch, mpercolate
Move to [2.0] snap
Add the ability to retrieve fields from field data

Adds a new FetchSubPhase, FieldDataFieldsFetchSubPhase, which loads the
field data cache for a field and returns an array of values for the
field.

Also removes `doc['<field>']` and `_source.<field>` workaround no longer
needed in field name resolving.

Closes #4492
Fix formatting of license header
Throw an ElasticsearchIllegalArgumentException when allocating on a non-data node.

Today, it would fail with a NullPointerException.

Close #4833
HistogramAggregator: Finer-grained rounding.

The way `HistogramAggregator` works is that for every value, it is going to
compute a rounded value, that basically looks like
`(value / interval) * interval` and use it as a key in a hash table to
aggregate counts.

However, the exact rounded value is not needed yet at that stage, all we need
is a value that uniquely identifies the bucket, such as `(value / interval)`.
We could only multiply with `interval` again when building the bucket: this way
the second step is only performed once per bucket instead of once per value.

Although this looks like a micro optimization for the case that was just
decribed, it makes more sense with the date rounding implementations that we
have that are more CPU-intensive.

Close #4800
Accept `defaultOperator` in addition to `default_operator` for simple_query_string
[DOCS] Moved multi fields documentation into the core-types page
Removed docs about setting inheriting (was never added)
Made mapping samples formatting similar as other ones.
Terms aggregations: make size=0 return all terms.

Terms aggregations return up to `size` terms, so up to now, the way to get all
matching terms back was to set `size` to an arbitrary high number that would be
larger than the number of unique terms.

Terms aggregators already made sure to not allocate memory based on the `size`
parameter so this commit mostly consists in making `0` an alias for the
maximum integer value in the TermsParser.

Close #4837
Make all aggregators reader-context-aware.

This removes the overhead of polling a Bytes/Double/Long-Values instance in
every call to collect.

Additionally, the AggregationsCollector has been changed to wrap a simple array
instead of an ArrayList.

Close #4841
[DOCS] annotated the multi fields and copy_to feature with the right version.
[DOCS] `coming` instead of `added` for copy_to feature.
Add 1.0.0RC2 to the version table
Added tests that ensures all version are in the Version#fromId(int) switch statement
Replace Version checks against 1.0 with 1.0RC2
[DOCS]: fixed added / coming tags in docs