Fix DRILL-576: Cumulative changes for Drill costing, new plans for joins and aggregations, including distributions.

Rebase on master branch and integrate costing changes with the GroupScan's row count.

Revert the plus and minus logic of costs to do the add and subtract of the row counts instead of taking the Max.

Add cleanup() methods to MergeJoinBatch and HashJoinBatch.

Don't match hash aggr rule if number of grouping cols is 0. Fix build after rebase.

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.  Bump up the direct memory size to 16GB.

Ignore one test and revert max direct memory size to 10GB.