Rework timer infrastructure.
Timing is now based on explicit SDL timers instead of threads.