Add test that throws exceptions during search execution

Currently we only test if readers are correctly released when exceptions
occur during reopen or flush. This commit adds a test that
randomly throws exceptions during the search execution ie. when Terms
are pulled or if a docs enum is created.
Add @Slow annotation to bad apples
Start Test nodes sometimes without mock modules

We are mocking out some functionality to add assertions etc. or
randomize store types. We should randomly run with our defaults to make
sure we don't hide any potential problems.
Increase MaxPermSize to 128m for tests
Explicit doc_values setting.

Once doc values are enabled on a field, they can't be disabled.

Close #4560
Honor `includeDefaults` in GeoPointFieldMapper.

Close #4563
Add build hash to nodes info API
also, add it to the cat nodes api
move helper class for allocation tests to base class
mark abstract class as abstract
Expose filtered nodes on TransportClient
Expose the list of nodes that were filtered out with the TransportClient, for example, due to different cluster name. Relates to #4569
closes #4571
We run PluginManagerTests using only node client.

We also add some debug logs and fix `tests.network` (setting it to true was not working from jenkins)
more cleanup of cat API, fix index lookup failure count/health
Add ability to run certain packages with assertions disabled

Test can be run with `-Dtests.assertion.disabled=org.elasticsearch`
to run the tests without assertions to make sure assertions
don't hide any assignements etc. that introduce bugs in production.
Add field data memory circuit breaker.

This adds the field data circuit breaker, which is used to estimate
the amount of memory required to load field data before loading it. It
then raises a CircuitBreakingException if the limit is exceeded.

It is configured with two parameters:

`indices.fielddata.cache.breaker.limit` - the maximum number of bytes
of field data to be loaded before circuit breaking. Defaults to
`indices.fielddata.cache.size` if set, unbounded otherwise.

`indices.fielddata.cache.breaker.overhead` - a contast for all field
data estimations to be multiplied with before aggregation. Defaults to
1.03.

Both settings can be configured dynamically using the cluster update
settings API.
Switch finally clause to be a simpler bool check
Only adjust on fielddata unloading if it was a class we estimate
Don't keep precision, multiply only when needed for comparison