DRILL-576: Add costing
- new plans for joins and aggregations, including distributions.
- Utilize GroupScan getSize() for costing
- Add cleanup() methods to MergeJoinBatch and HashJoinBatch.
- Don't match hash aggr rule if number of grouping cols is 0.
- Fix initialization of maxOccupiedIndex in HashAggr and HashTable.
- Fix less-than comparison for cost when row counts are the same.
- Improve fragment identification for better debugging.
DRILL-656: Fix for test case failure in TestPoolChunkTrim
DRILL-654: Fix for MaterializedField.getAsSchemaPath()
DRILL-655: Miscellaneous fixes for SchemaPath

 - Fixed equals() and hashCode().
 - Made PathSegment immutable outside of package.
 - Made ArraySegment and NameSegment final.
DRILL-626: Project push down into HBase scan
DRILL-664: Improve Rpc error message display
DRILL-633: Fix toString() for DrillFuncHolder and few other types.

 - Added o.a.d.common.types.Types.toString(MajorType) method to convert a MajorType to string without the line breaks.
 - Log a trace message with all registered Drill functions.
DRILL-682: Improve HBase storage engine test execution
DRILL-619: Implement Decimal functions abs ceil floor round truncate divide modulo Fix resolver type precedence Fix bug in multiplication of large decimals Add tests

Added following misc functions
concat
length
to_char
to_number

Aggregate functions for decimal
DRILL-601: Support for 'Show files' command
Cleanup DateUtility to use time zone list once
DRILL-679: Support create table as query (CTAS).
DRILL-675: Views created in dfs (with no workspace subschema) schema are not found when queried.
WIP: Adding window op