Better Datetime handling

This is a series of fixes, that includes handling mysql datetimes better and improving datetime round-tripping. Also included is code to allow columns to cast based on whether value is coming from db or from user code, so that users can use the same format for any adapter(wasn't an issue, but may be with some DB's)