Viewport cleanup

Part 3/N of cleanups in preparation for TS/RA2 terrain support.

This simplifies the viewport code and removes inherent assumptions about tile geometry.
The viewport object has been moved from Game into WorldRenderer.