Restructure game types

Levels no longer subclass from level types; instead they own a game type
object which subclasses from a generic Game class.

Also, in Pygame, level files are not instantiated until the game screen,
and then they are passed to the level object before the cell and sprite
data is parsed.
Start implementing Chip's Challenge