base gamestate ticks on a user adjustable setting, not just “as fast as possible”
Before this, the logic thread was a little out of control. This binds the logical ticks to time elapsed instead. To make things a little more interesting, this also introduces three speed settings (1x, 2x and 10x).