fix runaway setTimeout() calls

The problem was caused in `executeTimers` which assumed that callbacks doesn't schedule new timers.

The fix changes this assumption and now always tests for existing timers.

Fixes #38.