DRILL-494: Support for Storage Plugin Optimizer Rules
DRILL-571: Predicate push down into HBase scan
DRILL-491: project pushdown into scan. Add base test class for testing plan.

Project pushdown.  Add a plan base test class.  Add a clone method for GroupScan.

Minor change to DrillScanRel.getGroupScan().

Project push down : skip trivial project.

Enable the rule to remove trivial project in logical planning phase.
DRILL-549: Implement functions for date and interval data types

Jira, DRILL-549 has the complete list of functions implemented.
DRILL-556: Implement the following aggregate functions.
stddev()
stddev_samp()
stddev_pop()
variance()
var_samp()
var_pop()

Implement aggregate functions (max, min, sum, avg, count) for Date, Time, TimeStamp, TimeStampTZ, Interval, IntervalDay, IntervalYear
Increase TPCHTestPlanning timeout
DRILL-452: Conversion functions for external data types

* Length need not be a parameter in varchar* functions.
* Added test cases for UTF8 conversion.
DRILL-578: Performance fixes in Hash Join.

Includes a few minor fixes when hash join receives empty batches on build / probe side
DRILL-469: Enable nulls in HiveRecordReader
DRILL-516: Use custom convertlet table to support extract() functions
DRILL-559: Fix NPE in dumpcat when arguments are not provided
DRILL-564: DRILL-442 broke DRILL-433 aka custom column width while printing results
DRILL-565: Remove spurious insertion into IdentityHashMap in ConstantExpressionIdentifier.visitFloatConstant()
DRILL-582: generate a standalone fat JDBC jar
Disable project pushdown rules as it causes regression in INFORMATION_SCHEMA.
Update HiveTextRecordReader to support nullable types.
Rename SQLParser to exec/jdbc.  Rename jdbc-all to exec/jdbc-all
Fix sqlline shell invocation so that it doesn't scan for a billion classes to find the match for the jdbc:drill: url.
DRILL-336: Modified the netty direct memory manager to:
   1) Efficiently reduce ("trim") the size of a memory buffer, releasing the extra memory back to the memory manager.
   2) Opportunistically allocate larger buffers if it can be done efficiently.
   3) Raise a warning exception if resizing a buffer copies more than 1 page of data.
   4) Added Javadocs and some in-code comments.
   5) Created a Junit test to verify basic functionality.

The "trim" and allocation changes are primarily in PoolChunkL,
which breaks a "chunk" into runs of pages using a buddy system.

Take advantage of memory interface changes.
Memory fixes
Updates for memory issues (WIP)
DRILL-620: Memory consumption fixes

accounting fixes

trim buffers

switch to using setSafe and copySafe methods only

adaptive allocation

operator based allocator wip

handle OOM

Operator Context