Basic update backend framework

Adds an 'Updates' class that can be used as a "backend" for actually
doing the update checks, whether they be automatic or from the GUI.