Do not override thetas if sum is less or equals to `0`

Closes #4390
Made sure the new cluster state is not held by AckCountDownListener

(also made AckCountDownListener class static)
Added aggs option to percolate api documentation.
Use a dedicated cluster name for GeoDistanceSearchBenchmark (like we do for other benchmarks).
Added more logging for percolator.
Lowered log level in percolator tests.
Remove 'term_index_interval' and 'term_index_divisor'

These settings are no longer relevant since they are codec /
postingsformat level settings since Lucene 4.0

Closes #3912
Fix bug in explain for function_score queries.

The explain output for function_score queries with score_mode=max or
score_mode=min was incorrect, returning instead the value of the last
function.  This change fixes this.
moved log statements
Preference only_node with unknown nodeId returns useful exception

When the search preference is set to only node, but this node is not a
data (or does not exist), we return a search exception, which indicates,
that this is actually a server problem.

However specifying a non-existing node id is a client problem
and should return a more useful error message than
{"error":"SearchPhaseExecutionException[Failed to execute phase [query_fetch], all shards failed]","status":503}
Introduce BytesTransportRequest, allowing for downstream network optimization in buffers usage
When sending a request, mainly to multiple nodes, if we already have the "body" of the request in bytes, we can share it instead of copying it over to a new buffer. Also, it helps a lot when sending a relatively large body to multiple nodes, since it will use the same body buffer across all nodes
Add wildcard support to field resolving in the Get Field Mapping API

Closes #4367