Window calls the resize hook on resize, instead of on every frame

It does this by looping through a screen stack. Also, the hook gets
called when initializing the screen.

Now all that logic can go right into the subclasses, and almost nothing
is needed in the superclass.

I know I keep moving this stuff around, but it's pretty trial and error.
Menu options now render in multiple columns

Columns now also scroll horizontally if there are too many to fit
Rearranged some methods

Moved draw_frame above run_frame for both screens.

Moved advance_level inside run_frame for game screen.

Also reverted a testing change in the menu screen, and added some
docstrings.
Added a font class

Should change it to take absolute size values, instead of a scale
multiplier.

Also still have to work it into the menu screen.