DRILL-2936: Use SpoolingRawBatchBuffer for HashToMergeExchange
In order to avoid deadlocks
Refactored common code in UnlimitedRawBatchBuffer and SpoolingRawBatchBuffer
into BaseRawBatchBuffer
Removed reflection-based construction of RawBatchBuffer. Now use choose implementation
based on plan
Updated SpoolingRawBatchBuffer to use a separate thread for spooling