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-705: Adding window functioning

Currently only supports partitioning/ordering, not yet preceding or after offsets