Update FilterBuilder and QueryBuilder interfaces

Make the FilterBuilder interface consistent with the QueryBuilder
interface and replace usage of QueryBuilderException with
ElasticSearchIllegalArgumentException.
Move ?pretty=false handling to the builder instead of mutating the map
Fixed small test bug.
DateFieldMapper.merge() can change date format and include_in_all

In order to be able to add an additional date to a date field mapper,
the merge operation has to support this.

Closes #3727
Making SearchRequest in PutWarmerRequest mandatory & validated

The search request inside of a put warmer request was nullable, but actually we have to have that request in the transport action.
Validation and appropriate test added.

Closes #4196
Ignore slow log configuration on shard creation

In case of a misconfigured slow search/index configuration (unparseable
TimeValue) an exception is thrown.

This is not a problem when creating a shard of an index, as an exception
is returned and all is good. However, this is a huge problem, when
starting up a node, as the shard creation is repeated endlessly.

This patch changes the behaviour to go on as usual and just disable the
slowlog, as an improper configuration of logging should not affect the
allocation behaviour.

Closes #2730
Revert Ignore slow log configuration on shard creation

This reverts commit 10810f00d490fdae35cdcff6f1a132d7c21c4816 as this introduces an exception to the rule when parsing settings.
Squashed old stuff :D
CircuitBreaker as part of builder, transition circuit breaker to per-node service
remove unused breaker
refactor old code, remove unused stuff
remove InternalEstimateFacet
misc cleanup
Still has kinks, but working service
change CircuitBreaker into interface
a bit of refactoring just moving around
Use real values for used when refreshing
documentation, refactoring and licenses
reset cluster name
add license header