Backport reliability fixes for timers from master to 0.10.

Use Timer.now() instead of Date.now() to perform timeout
tests in timers. Timer.now() uses a monotonic clock under the hood,
whereas Date.now() uses gettimeofday. This makes Timer.now() much
more reliable than Date.now().

_idleStart property is still set to Date.now() however
to avoid breaking existing code that uses it, even if its use is
discouraged.