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.
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
Fix regression caused by DRILL-1126
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).