Updater is now completely modular

Not only the core software can be updated, but additional components too, such as plugin or the whole environment. This also includes multiple version check sources and update mechanisms (pip, custom script, python module).

Via the custom hook "octoprint.plugin.softwareupdate.check_config" it's also possible for plugins to register with the softwareupdate plugin to be included in the version check and updates.

 This is an ongoing WIP, so be careful ;)