support millis, make sure DateTime(millis) roundtrips

DateTimes are allowed to be constructed from millisecond values, but don't actually support millisecond precision, that is DateTime(clicks).clicks != clicks for any clicks % 1000 != 0. This pull request fixes that.

I have used java.util.Date under the hood of the DateTime.apply(clicks : Long) which is possibly the least elegant solution possible, but it does pass all unit tests.