clean thread locals without needing a wrapper
clean thread locals smartly by identifying "our" classes, and removing them, so there is no need to wrap it in our our clenable values
Corrected a typo and improved the English in a master-discovery error
Corrected English in a shard error message
Routing value not serialized on transport layer.
Closes #3039
Keep backwards compatible with 0.90.0 on the transport layer.
Relates to #3039
Don't apply min frequency smoothing if suggest type is 'always'

Using an automatically detected 'min_doc_freq' if suggest type is set to
'always' is counter intuitive. If we suggest always ignore the frequency and
set threshold frequency to 0 to allow all possible candidates to be drawn if
they are within the given bounds.

Closes #3037
Added simple id loading test.
Relates to #3028
fix package name...
If matching root doc's inner objects don't match the `nested_filter` then the `missing` value should be used to sort the root doc.
Closes #3020
Added support for nested sorting for script sorting and geo sorting.
Closes #3044
Allowing pluggable highlighter implementations.

Currently elasticsearch ships with the plain and the fast-vector highlighter.
In order to support arbitrary highlighters via plugins, you only need to
implement a Highlighter interface and register your implementation in your
plugin at the HighlightModule.

In addition you can also add arbitrary options via the 'options' field in
the highlight request, which can be parsed in the highlighter implementation.

In order to find out how to write add your own analyzer, check out the tests
classes (CustomHighlighterSearchTests and CustomHighlighter).

Closes #2828
Packaging improvements & bugfixes

* RPM: Use the ES_USER variable to set the user (same name as in the debian package
  now), while retaining backwards compatibility to existing /etc/sysconfig/elasticsearch
* RPM: Bugfix: Remove the user when uninstalling the package
* RPM: Set an existing homedir when adding the user (allows one to run cronjobs as this user)
* DEB & RPM: Unify Required-Start/Required-Stop fields in initscripts
Ensuring test isolation when jvm plugins are loaded

Instead of specifying 'path.plugins' configuration option, 'plugin.types'
is used to load plugins in integration tests. This makes sure the JVM
plugins are not loaded in all following tests from then.

Also removed the now unneeded es-plugin.properties files from JVM test
plugins.
Grow array buffer in ScriptDocValues if needed

The buffer in ScriptDocValues for Strings was never called causeing
NPE in scripts if a document has > 10 distinct values in a field.

Closes #3051
wait for yellow after the index is created
also, remove starting one node, it not useful for the test, and slows down the execution