addTimer is options-driven

callsite provides pass-through arguments
delay is provided as option, not positional argument
timer object is assembled in single expression
Rename `timeouts` property to `timers`
Refactor firstTimerInRange
Sort timers by multiple criteria, not just callAt
Add createdAt to timers
Sort immediate timers before non-immediate