Daemonize AsyncClock's update Thread

As a user thread, we'd either have to wait for it to expire or add some
manual mechanism to stop it when the application wants to exit.

It's quite safe for this Thread to just die when the JVM exits.
Improve precision of AsyncClock update interval

Precision can now be specified as granular as nanoseconds, instead of
milliseconds. However, the interval precision and accuracy is now
dependent on the precision and accuracy of the system scheduler and
timers, which will usually provide both a precision and accuracy better
than milliseconds, but worse than nanoseconds.