Drill-1091: Make filter propagate best rel's collation trait. Fix StreamingAggPrule and HashAggPrule's pattern matching to look for child RelNodes.

Added variation of TPCH 19 and enabled the modified version in test suite.
DRILL-1111: 1. Create new batch holder for hash table if an insertion fails due to space constraints in existing batch holder. 2. Use allocateNew() for hash aggr and hash table allocations. 3. Create new output batch if output values fails the first time due to space constraints. 4. Use splitAndTransfer to transfer the keys from hash table's container to the output batch.
DRILL-1098: Add test for trim(), substring() function.
Actual fix is in OPTIQ-331
DRILL-861: Implement sum, avg for decimal data type.
DRILL-1110: Output precision of functions should always be greater or equal to input precision
DRILL-730: Initialize the buffer while creating sparse representation from BigDecimal
DRILL-1109: Implement downward casting functions for decimal data type.
DRILL-743: New String Functions
DRILL-1088: implemented date_trunc use TestFunctionsQuery instead of TestDateFunctions
DRILL-1107: Fix regression from first patch
DRILL-1107: Fix possible infinite loop in merging receiver

This bug was introduced in previous patch.
DRILL-1116: Flush batch when copy fails due to insufficient space
DRILL-1117: Fix stats in partition sender
DRILL-879: Fix show files to treat '/' as a root of workspace instead of FS
DRILL-755: Show files without FROM clause should display files in default workspace
DRILL-1101: For Union-All, allow strings of different lengths on either side of the union to be treated as compatible.
DRILL-1118: In case of error, always set QueryState to FAILED

+ Added a null check in o.a.d.exec.physical.impl.producer.ProducerConsumerBatch.clearQueue()
DRILL-1113: Add configuration in DrillClient to encode complex/repeated types as JSON string
DRILL-1060: Support ComplexToJson for Array Data Type