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

Conflicts:
	exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java
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.
Fix regression caused by DRILL-1126
Fix TestParquetWriter failures by using different tables for tests.
DRILL-785: org.apache.drill.exec.rpc.bit.ListenerPool leak suspects
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.
DRILL-1167: Split large runtime generated functions into a chain of functions

+ Modified few operators' (CopyUtil, TopNBatch, ExternalSortBatch) runtime code generators to start a code block for each value vector.
+ With this change, we are able to project 2000+ expressions, sort on 500+, group by on 200+, filter on 150+ and join on 100+ columns.
+ The test cases added with this patch adds 3 minutes to the test run and hence I have excluded them from default run. They can be enabled using 'largeTests' maven profile.
DRILL-1186: Check for null values in Nullable Date/Time/TimeStamp SqlAccessors
DRILL-1192: Hive Scalar UDFs: Add Date, TimeStamp and Decimal type support

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).