Use mach "host calendar change" notification

This is fired when the system time offset changes, including when waking
from sleep, removing dependency on UIKit-level things, and works on the
Mac as well.

Use NSProcessInfo to read uptime to remove dependency on QuartzCore.
Fire timer in the right run loop mode