General Changes

Cleaned up code, added script exit on missing dependencies, and implemented logging factory.

I'll leave this up to you but there should be some exception handling on loading files (either using try/except for IOError or os.path.isfile()) to gracefully handle using the logging factory.