Change map scroll speed to something not easily dividing tile size.

Avoids weird visual effects.
Move updating game state to a separate function.
Make update ticks FPS-independent.

It's easier to make updates when one doesn't need to care about variable
time step. Plus it should make multiplayer synchronization more
approachable.