Hostile Takeover from Viewport-Setup branch

This is the merge of all changes made in Viewport-Setup into the master
branch. For a full changelog, please see the Viewport-Setup branch's
commit history.

In brief:
-separated game logic from demo
-enforced some kind of architecture to avoid the now impossible access
of static properties
-pretty good resizing support (startup time only)
-optimistations, bugfixes, and making code actually readable