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.
hm i've removed the custom process method, so the super one is used.
changing it to `planNodeStreamerVisitor.process(mergeNode, ramAccountingContext)` will conflict with the `super.process(..)` if ramAccountingContext is null (which is currently the case at `TransportCollectNodeAction`). could be solved by using an `Optional` here, but can you explain a bit more why the current impl is not fine?