Viewport

Okay, I added basic viewport scrolling, a large map on the left side, and unit selection in the 3D space.

I probably can't work on this anymore tomorrow. Please help me write tests for this and refactor if needed.