Ensure all shards return compareable scores for rescore tests
Cleaning up some tests by using assertHitCount assertion
Cleanup String to UTF-8 conversion

Currently we have many different places that convert String to UTF-8
bytes and back. We shouldn't maintain more code than necessary to
do this conversion and rather use Lucene's support for it.
Thread pool: rename `capacity` to `queue_size`
fixes #3161
Fix addMapping() in AbstractSharedClusterTest for more than one field
no need for the test
fix shared cluster to delete templates as well per test run
fix the type of the mapping
remove the index level class support
fix the test that relies on it, just index the data for each test case
Always ceate index with mapping in test to ensure shards are available
upgrade jackson to 2.2.2, netty to 3.6.6
missing/exists filters should also work for objects
closes #3141
stabelize more tests
Use CFS in any case if index.compound_format is set to true

Lucenes MergePolicies support a noCFSRatio. This commit introduces
support for this ratio via `index.compound_format`. This setting
can parse a boolean value or a value in the interval [0..1] that
is equivalent to the noCFSRatio. The setting `1`, `1.0` and `true`
are equivalent as well as `0`, `0.0` and `false`.

Closes #3166
Added `filter` support to `custom_score` query.
Closes #3167
Use XConstantScoreQuery instead of ConstantScoreQuery.

Relates to #3167
Forbid usage of Character.codePoint(At|Before) and Collections.sort.

Character.codePointAt and codePointBefore have two versions: one which only
accepts an offset, and one which accepts an offset and a limit. The former can
be dangerous when working with buffers of characters because if the offset
is the last char of the buffer, a char outside the buffer might be used to
compute the code point, so one should always use the version which accepts a
limit.

Collections.sort is wasteful on random-access lists: it dumps data into an
array, sorts the list and then adds elements back to the list. However, the
sorting can easily be performed in-place by using Lucene's
CollectionUtil.(merge|quick|tim)Sort.
add more verbose assertions to tests
Allow date format to supported group of built-in patterns

Until now 'named dates' like dateOptionalTime could not be used as a group
of dates. This patch allows it to group it arbitrarily like this:

* yyyy/MM/dd HH:mm:ss||yyyy/MM/dd||dateOptionalTime
* dateOptionalTime||yyyy/MM/dd HH:mm:ss||yyyy/MM/dd
* yyyy/MM/dd HH:mm:ss||dateOptionalTime||yyyy/MM/dd
* date_time||date_time_no_millis

Closes #2132
Set a hard limit on the number of tokens we run suggestion on

PhraseSuggester can be very slow and CPU intensive if a lot of terms
are suggested. Yet, to prevent cluster instabilty and long running requests
this commit adds a hard limit of by default 10 tokens where we just return
no correction for anymore if the query is parsed into more tokens.

Closes #3164