Auto loading plugins and cleaner plugin interface.  Also lint fixes

* Plugins now inherit from UploadPlugin (which makes the code loading the plugins more readable)
* Plugin classes are loaded with the import * (which i'll look into fixed to a different auto load mechanism)
* For each plugin class available we check the config file for the name of the class.lower()
* if the plugin section is in the config file and enabled then its instantiated and saved to screenshot.uploaders[name]
* options have been moved around to change from being class level properties to just a config object,  this removed tons of lines of code and made loading plugins simpler.  the top level screenshot config options are still class properties on the config object.


i think thats it.  i did all of this just so i could add a way to template the destination path globally and add a method to the UploadPlugin object to facilitate that, which is up later.