Introduces work cycles with clock.tick(0)

* clock.tick() and clock.tick(0) now find all due timers (at now) and run them all. If any of these sets another setTimeout(0), it will NOT run in the same tick
* introduces deterministic call order: timers due to run at the same time will run in the order in which they were set
* minor cleanups
Remove unecessary code