unix, windows: run expired timers in run-once mode

Before this commit, creating an event loop, starting a timer and
calling uv_run(UV_RUN_ONCE) blocked in uv_run() until the timer
expired - but didn't actually run the timer.

/cc @piscisaureus - Can you look into why the test fails on Windows with this error?

```
Assertion failed in test\test-timer.c on line 282: 0 == uv_run(uv_default_loop(), UV_RUN_ONCE)
```

Either the timer callback hasn't run or something else is keeping the event loop alive.