Gut the backup plugin, but keep it around for backward-compatibility.
Use the old plugin code for 1.20.
Add a deprecation warning message.
Add a TODO comment about removing the plugin.
Improve the visibility of the divider comment.
Skip new backups for 1.21 as well.
Add upgrade step to put the system identity back.

Conflicts:
	upgrades/upgrade_test.go
missing import.
state/backups: break dependency on state package
.
Updates and move step to 1.22
fix test
Remove the step from 1.21 as it is in 1.22 now.
Merge pull request #1202 from davecheney/221-state-backups-break-dependency-on-state

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.

(Review request: http://reviews.vapour.ws/r/512/)
Merge pull request #1203 from davecheney/222-add-check-that-apiserver-params-does-not-depend-on-state

apiserver/params: add test to prevent state being added as dependency

`apiserver/params` should not depend, even transitively on `state`, because that will mean anything that uses the api also has a state in their dependency graph.

This test makes it a robot's job to check.

Requires #1202 

(Review request: http://reviews.vapour.ws/r/513/)
Ensure correct value is logged in config deprecation warning
Merge pull request #1206 from wallyworld/fix-deprecation-warning

Ensure correct value is logged in config deprecation warning

Fixes: https://bugs.launchpad.net/juju-core/+bug/1394751

When logging a warning about using provisioner-safe-mode, the warning message had the wrong suggested value for the new harvest mode setting.  The logger function now is given what the new value should be so it can use it in the log message.

(Review request: http://reviews.vapour.ws/r/516/)
Merge branch 'master' into fix-juju-run
Hook up the state part of the upgrade.
Merge pull request #1188 from howbazaar/fix-juju-run

Add upgrade step to put the system identity back.

The agent config is updated by the upgrade step.
The machine agent code that writes or removes the system identity is now moved into its own worker that runs after the upgrade steps have finished.  This avoids the race to remove and add the file.

(Review request: http://reviews.vapour.ws/r/498/)