DRILL-1729: derive & infer result type for boolean returning custom functions so that optiq can validate and execute user queries seamlessly
DRILL-1185: Unit test for delimited text failing in classpath storage plugin.
DRILL-1458: New unit test framework.

Review comments, cleanup, additional tests

Matching columns, throw useful error messages if there are missing or extra columns.

Few more features in unit test framework, providing several baseline records in the builder pattern, allow checking empty result. Added a new unit test to ensure that nulls were validated properly in both the ordered and unordered cases.
DRILL-1737: Fix decimal handling in unit test framework.
DRILL-1775: Fix BINARY ENUM in Parquet converter.
DRILL-1749: Support nested maps in the flatten operator.
DRILL-1753: Flatten 2 level repeated map
DRILL-1787: Fix memory leak in kvgen function.
Fix for flatten receiving a non-repeated type during fast schema step.
DRILL-1748: Fix SplitUpComplexExpressions rule when using Item operator
DRILL-1488: Provide configurable option to set the sql identifier max length which is passed to Calcite's SQL parser. Main fix is in Calcite version 0.9-drill-r9 (see CALCITE-464).
DRILL-1780: check if result set is empty before accessing;
 show a neat message to the user when resultset is empty; minor refactorings
 to DrillRestServer
DRILL-1641: Fix failure of kvgen(...) on indexed repeated map.
DRILL-1772: Improve error propagation to client for Foreman.
DRILL-1774: Update JSON Reader to do single pass reading and better use Jackson's interning.  Also improve projection pushdown support.
DRILL-1790: Improve DataServer inbound message handling. Throw away the message if the manager is null as this means the fragment was recently finished (limit or otherwise canceled).