All changes are pretty straight-forward. I chose to use TimePoints with
second precision, as that is all that seems to be required here.
One thing I noticed when writing this is that constructing a "zero" time point is
much more laborious than it used to be with TimeValues. Potentially, we may want
to consider adding something akin to TimeValue::PosixZeroTime() to time points as
well.