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 agree with @ericsnowcurrently here. I think having well defined abstractions reduces complexity and gives a way to discuss an idea within the code without having to sift through the details.