Add new data types (Date, TimeStamp and Decimal) to Hive UDF 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.
+ Add test Hive UDF implementations and testcases to cover all supported types (passing data into Hive UDF and reading data returned from Hive UDF).