Better support of times & timezones

- use `LocalDateTime` instead of `DateTime' for client facing timestamps.  these values are just a timestamp without any timezone (conference fields: registration start & end times, event start & end times, early registration cutoff
- upgrade to latest sql2o version which adds support for `LocalDateTime`
- use separate Json serializers for `DateTime` and `LocalDateTime`
It's six of one, half dozen of another.  If we specify UTC then a timestamp is passed back like: {date}T{time}Z .  Without UTC it defaults to the timezone of the JVM and passes back {date}T{time}-{offset}.  It's the exact same "instant" in time, just with a different offset.  No matter what's passed back, the client will display it in the timezone of the user.