Upgraded to Spatial4j 0.3
Added types exists api

The types exists api checks whether one or more types exists in one or more indices.

## Example usage
curl -XHEAD 'localhost:9200/twitter/tweet'

## Options
* `index` - One or more indices. Either specified as query string parameter or in the uri path.
* `type` - One or more types. Either specified as query string parameter or in the uri path.
* `ignore_missing` -  Determines what type of indices to exclude from a request. The option can have the following values: `none` or `missing`.

Closes #2273
Added MultiPolygon parsing and serialization support
Norms field is ignored when doing a match_all query
we shouldn't optimize a match all query if it has norms associated with it, fixes #2277
Transport: Add header token
This allows to more easily identify when illegal content is being sent to the transport port
closes #2280
add node version to each request/response transport message
a version associated with each request, and having it associated with the stream when (de)serializing, can allow us in the future to better support cross version communication
disconnect from unicast nodes before raising event
use the version to deserialize published cluster state
add simpler way to set the epoll bug workaround flag for netty
Added ShapeFetchService with support in GeoShapeQueryParser/FilterParser
minor geo shape fetch improvements
Fixed score explain is for `custom_filters_score` query.

 Only the explain of the filter was included. This fix adds an explain for the inner query and wraps it in a top-level explanation.
Bulk Delete item when broadcast to all shard (lack of routing) might not be applied correctly
closes #2285.
introduce TransportRequest (with optional headers)
introduce a new class, TransportRequest, which includes headers. This class can be used when sending requests over the transport layer, and ActionRequest also extends it now.
This is the first phase of the refactoring part in the transport layer and action layer to allow for simpler implementations of those as well as simpler "filtering" capabilities in the future
fetching a shape should not occur on separate thread
introduce TransportResponse
a class that needs to be used when sending a response over the transport layer, with an option to have headers
upgrade to mvel 2.1.3
make sure to pass the updated settings from the plugins to the modules with transport client
query_string on multiple fields with "*" fails in 0.19.9
fixed #2296
more guice to use Objects from guava