Add timer functionality to the async IO framework.

This supersedes #73, and moves the timer processing into `UnixEventPort`. The times are still kept as a Quantity<int64_t>. Only "steady" timers are implemented for now, although the hooks for "wall" timers are already shown in TimeProvider.