Date handling is more type specific.
Optiq's enum of types used in more places.
Allow calling code to examine and override optiq's type conversion assumptions.
This is generally a really bad thing to do unless you have custom types of your own or need specific information about how type conversion is occuring.
Error reporting when optiq doesn't support a Rel can indicate that something wrapping optiq could manage it
Restore Optiq's type mapping Time->int, Date->int, Timestamp->long. Other projects can override by specifying different type factory.

Fix code formatting.