juju/juju — pull request #1202 by davecheney (2014-11-21 01:42:54+00:00)
Title: state/backups: break dependency on state package

In refactoring the backups package to not have a dependency on state, we acccidentally inverted this dependency causing `state/backups` to depend on `state`. This meant that anything else which depended on `state/backups` now depended on state, namely the apiserver and thus the api client :(

This PR breaks that dependency by defining an interface in the `state/backups` package specifying only the required methods to fulfil the backup contract. This leaves us with

```
lucky(~/src/github.com/juju/juju/state/backups) % deps
github.com/juju/blobstore
github.com/juju/errors
github.com/juju/juju/cert
github.com/juju/juju/juju/arch
github.com/juju/juju/mongo
github.com/juju/juju/network
github.com/juju/juju/replicaset
github.com/juju/juju/service/common
github.com/juju/juju/service/upstart
github.com/juju/juju/utils
github.com/juju/juju/version
github.com/juju/loggo
github.com/juju/names
github.com/juju/txn
github.com/juju/utils
github.com/juju/utils/apt
github.com/juju/utils/filestorage
github.com/juju/utils/hash
github.com/juju/utils/proxy
github.com/juju/utils/set
github.com/juju/utils/symlink
github.com/juju/utils/tar
```

Bikeshedding on the names of variables and types is permitted.