Expose a top-level abstraction for all the backups functionality.

This patch adds a top-level backups abstraction.  It also exposes the backup creation functionality through a method.

The PR that will follow this one:
  https://github.com/ericsnowcurrently/juju/pull/4
I (as in personal opinion) believe that his adds no value to the code but adds a layer of complexity unnecessary to a software the size of juju that is already quite complex.