Major Source Reorganization

Moved classes into python packages under resource/lib/*
Modules that had multiple classes in them were split out to allow for a
module to have a single purpose with a good name.
Sources were moved into individual files and a slightly different class
loading technique was used since they were not all local.