Support data types needed for Date and Time

Add new value vectors and holders for the following data types

Date
DateTime
TimeStamp
Interval

Instead of a bi directional map use an array and a hash table for faster retrieval of timezones
Add joda-time dependency to java-exec pom

Cast functions between Date, DateTime and TimeStamp

Comparison functions for Date, DateTime, TimeStamp and Interval

Date, DateTime, TimeStamp comparison functions are simple long comparisons.
Interval comparisons include normalization and comparison of each duration we store (months, days, milliseconds)

Add Time data type
Comparison functions for Time

Expression parser changes for Date, DateTime, Time and TimeStamp

Added a new field to the MajorType, timeZone

Cast functions from String to Date, DateTime, TimeStamp, Time

Temporary workaround: Make the scope of functions to set the value vectors with NullableHolder as one of the inputs as 'public'. Will need to remove this once JIRA-364 is resolved

Cast functions from Date, DateTime, Time, TimeStamp to String

Added capability to define date, datetime, time,  timestamp, interval type literals
Added a sample function "date_add" that adds a date and an interval

Use int for Time type instead of long