WIP: Feature/time overhaul

Not ready for PR yet, but up for review and comments. This is an attempt to deal with time in a consistent and recommended way.

At a high level, here are some of the changes:
* Set an application time zone to use over a system time zone
* Use Time instead of Date or DateTime since Time includes Date information
* Use an explicit iso8601 string format
* Update times to the required zone before manipulation