Broke up the main class into two

One class for the window, one for the actual game loop. Hopefully this
is a logical distinction that will let us swap out the game for other
things like menus.

Also restructured the loop: the drawing stage has been separated from
the game logic, and is called once when initializing the game and then
at the end of the loop.