Specify target traits based on converted RelNode's trait, in stead of empty trait sets, when call planner to get the logical plan.

Add back RemoveSortRule to Logical rulesets.
Fix EXPLAIN plan which was broken in recent change, add test case for EXPLAIN.  Move debug msg in DrillSqlWorker to logger.
AltSort: Replace sort with ExternalSort, Limit + sort with Limit + topN in the generated physical plan.
fix cleanup methods in ExternalSortBatch and TopNBatch.
Bug in ExpressionStringBuilder while parsing timestamp constant.
Intermediate commit:  Add broadcast inner plan for MergeJoin. Add single column distribution plan for StreamingAggregate. Add Drill's initial implementation of RelOptCost interface.
Intermediate commit: Add broadcast inner plan for MergeJoin. Add single column distribution plan for StreamingAggregate. Add Drill's initial implementation of RelOptCost interface.
Cost estimates (for Optiq's use) for exchange operators and sort.  Pass QueryContext to DistributionTraitDef such that it can be used during costing.
More costing WIP.  Added new HashToMergeExchange operator.
Add merge join estimated cost.
More costing WIP.