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.
process of planNodeStreamerVisitor is already a custom method that isn't part of the visitor interface. Maybe the method could be changed to `planNodeStreamerVisitor.process(mergeNode, ramAccountingContext)` and continue to return a StreamerContext?