Physics engine client-side

Thanks to the shared class structure the physics engine is now working
client side. The potential issue I recognised after implementing
scrolling a few commits back has indeed become an issue, but hopefully
only a minor one. Solid tiles aren't being recognised unless they're on
screen.

The performance is quite surprising and I can't wait to take the world
drawing further by wrapping the x axis infinitely, setting up animations
and dynamic arms like in the legacy client.

I will next implement a quick singleplayer mode so that testing the
engine is quick and not dependent upon sockets. Multiplayer work can
come afterwards, which will involve cubic spline interpolation and
syncing the game state swiftly and conservatively.