Extensible menu object

Each menu screen is now a subclass of the Menu class. Init is simple:
just define the options. Each option is a tuple containing the label,
the screen object to be run when the item is selected, and the arguments
(other than window) to be passed to that screen.

Now the main menu and the level selection menu are their own screens,
and the superclass can just render the options without caring what it is
they do.

Probably will have to expand this more later, as menu options are added
that do things other than switch screens.
Add configuration file

Now default configuration is set in a single file instead of in the
constructors of each object, and as default arguments.

Had to extend the ConfigParser class because it lacked a few features
like parsing lists. Also it just reads a single section from the config,
so I don't have to pass the name of the section to every frigging
get call.