tm_timer: Fix early timeouts.

Maintain the invariant that last_time + timers_head->time is the time
of the next item in the queue throughout tm_timer_callback for when
JS callbacks call setTimeout.
tm_timer: remove the special case for initializing last_time

It doesn't matter; the offset between real time and last_time is always
accouted for. Re-setting it breaks on re-entrant setTimeout with
previous changes.
Fix POSIX timer implementation.

It didn't account for elapsed time before, and now that matters more.
Merge #639 r=@kevinmehall: Timer fixes