Add sql query circuit breaker.

This adds a sql query circuit breaker which tries to estimate the amount of memory needed by a certain operation of a query to prevent a OutOfMemory exception.
It raises a CircuitBreakingException if the limit exceeded.
The default limit is 60% of the available HEAP.

The limit can be configured using the ``crate.breaker.query.limit`` and related ``crate.breaker.query.overhead`` settings.
DQLPlanNodes have a String id field that currently contains the name of the operation and is also used for the entry in logs.operations. The field is set by the Planner and I think in this case it would be "local merge". I think that could be used here.