A major overhaul

Haven't touched this in well over a year, so giving it an update.

Some major structural changes here. The results remain more or less the
same, except that the Pygame version wasn't even working, and now it is.
Some more structural changes

Moving as much logic as possible into the init of the pygame
and PIL classes.

The next step is to take out anything duplicated, and move it out of 
these classes and into the main class.