Faster and more correct EPollEventHub

Timers should be generally more precise. Eliminated the Timer.ALLOWANCE
that allowed for timers to fire 30ms before they are actually due. Also
made sure the epoll timeout value never dips below 1ms (the minimum time
that it will actually wait). This prevents busy-looping but can mean
that timers can fire slightly later than previously.

Timers are actually run earlier in event handling now as well.