Improve the game loop

It can now skip frames. Replays are a *lot faster* on the "max speed" setting.
`maxTicksBeforeUpdate` is a bit confusing: logic ticks, render ticks and system ticks are all different things.