DRILL-1134 : Fix compilation exception in run-time code, when filter uses two or more array types.
DRILL-1108: Fix run-time code Generator Mapping when join condition is a compound expression containing constants.
DRILL-1150: Only push expressions in equal join predicate down into projects. Fix is in Optiq.
DRILL-1166: Session option to enable/disable debug information in runtime generated Java code

+ By default, debug options are enabled but can be disabled by setting the session option `exec.java_compiler_debug` to false.
+ Allow the defaults for compiler options to be set through configuration.
Rewrite convert_from/ convert_to functions to actual function implementations
DRILL-1061: Disable MergeProjectRule if project expression has complex output type
DRILL-1164: Use FQCN while casting Timestamp to Date
DRILL-1126: Support generic objects as workspace variables in UDAF
DRILL-1177: Check if setsafe() succeeded while performing HashAggregation
DRILL-1086: invalidate PStore to drop a view in case it is not in the underlying fs
DRILL-1090: Shutdown Drillbit if start-up fails
DRILL-1096: Stop ScanBatch if read fails and pass failure context to the client, break the producer loop when iter outcome is stop
DRILL-1119: updated error message thrown when schema is immutable
DRILL-1144 Fix cases where leading zeros are ignored in decimals
DRILL-1181: Generate user friendly error messages
DRILL-934: Implementation of repeated reader and writer for parquet. Includes a fairly substantial refactoring of the overall reader structure.

DRILL-945: Parquet support for repeated data. Current implementation only supports fixed length values. Still need to find a way to verify decimal and date/time types.

DRILL-419: Fix issue with Impala produced parquet file reading. Issue was an instance of a row group that had dictionary encoding and plain encoding mixed, did not realize this conformed to the parquet spec.

Fix records counts expected in parquet read tests, previously the wrong records counts were being expected and messages were sent to the logger, but in the form of debug messages. not errors, so they were not flagging when the tests were failing.

After review: Rename PageReadStatus to PageReader, removed underscore from package name column_readers, address review comment from parth in VarLengthColumnReaders.
DRILL-1186: Check for null values in Nullable Date/Time/TimeStamp SqlAccessors
Hive Scalar UDFs: Add new data type support (Date, TimeStamp and Decimal)

Also following refactoring:
+ Minimize the number of variables in HiveTypes.tdd
+ Make use of Hive TypeEntries and Hive AbstractPrimitiveObjectInspector to simplify Drill ObjectInspectors implementations.

Test:
+ Add Hive UDF test implementations and testcases to cover all supported types (passing data into Hive UDF and reading data returned from Hive UDF).