Add basic level saving and loading.

Realised that as it stands large levels heavily break the game.
Must improve raycasting function for performance.

Also unsure why so many files must be committed?