state: added functionality for aborting upgrades

UpgradeInfo now has an Abort method for cancelling the current upgrade.
This is one place where we commonly use the backtick raw string:

```go
c.Assert(err, gc.ErrorMatches, `cannot explicitly set upgrade status to "pending"`)
```