Fix assumed tween order for transition tests.
Simplify timer data structure.

Rather than store the reference time (then) and a delay, timer tasks are now
stored with only a start time. A task becomes active once the current time
passes the start time. This includes a small change to the behavior of flush,
such that any active timer task is triggered, rather than only triggering tasks
with a delay of zero. The resulting behavior is for most purposes equivalent.