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 @perrito666 - I don't think the abstraction adds any benefits, and just adds complexity.  The functionality is no more or less hidden away than if it were just a simple package-level function.... the backups struct serves no real purpose, it just requires the addition of a constructor function and a struct.