Got the initial menu screen working

Next thing is to add a screen stack, and change their return values so
we can start new screens and escape back to old ones
Multiple levels now supported

- The window object is now passed directly to the screen objects so that
they can run new screens themselves. New screens are added onto a stack
in the window object.

The only ugly part is the set_window() call, but it requires less code
than passing it to the screen constructor. Maybe we can re-architect so
that the game screens pass the window around instead of vice-versa? This
might make it easier to implement different output types?

- Menu actions now contain a function name, instead of just a screen
class name or False. More flexibility.

- The window background is now filled in when changing screens, though
we might want to change this later.

- Renamed menu screen classes.

- Added the escape key to quit from a level.

- Added a second Sokoban level.

- Added support for level titles.

- Moved the marker colour into config.
Fix tracking and line height in fonts

Tracking is now relative to the base font size.

Leading has been replaced with a more practical line height parameter.

Also took advantage of multi-line rendering to simpify the menu option
routine a bit.