always use the max score across the shards in suggest response
throw IAE if fieldname is null - Closes #2711
Fail in metadata parsing if the id path is not a value but rather an array or an object.

Closes #2275
Short Curcuit response if no indices exits and make sure listener is notified.

Closes #2692
Supporting sort modes `avg` and `sum` when sorting inside nested objects.
Previously this commit either sort modes `min` or `max` (depending on sort order) was used when sort modes `avg` and `sum` were picked.

Closes #2701
ensure that suggestion only added on reduce if they are present in the shard response
Throw IAE if indices is null or contains a null value.

Closes #2656
Throw correct ClassNotFoundException to debug classloader issues
more strict check before trying to parse and detect a string as a date
fixes #2694
Analyze API returns in YAML format if analyzed string begins with ---
fixes #2624
Correct order of routing and parent params for Get

The order in which routing and parent parameters are set is important.  The
routing parameter must be set first or it will overwrite the parent routing
value.
Query DSL: Filtered query to make query optional (defaults to mach_all)
closes #2718
lazy set the indices on the search request now that its validated
spin a bit to wait for condition in test, so slow machines will still run it correctly
add proper testing for bool filter
Make BoolFilterBuilder output proper json
Change geo_shapes support:

* Exposed the spatial strategy to be configurable as part of the geo_shape mappings
* Exposed the spatial strategy to be customizable at query time (will be used to generate the geo_shape filter/query)
* Removed XTermQueryPrefixTreeStrategy and reverted to use the lucene TermQueryPrefixTreeStrategy instead
* Made the RecursivePrefixTreeStrategy the default strategy to be used
* Removed support for all spatial operations except "intersects"
* Updated both the GeoShapeQueryBuilder and GeoShapeFilterBuilder with all the changes (removed the option of specifying the operation type (as only intersects is supported) and added the option of setting the filter/query spatial strategy