state/apiserver: keep backups in env storage

Whenever the backup API is called keep the backup tarball in environment storage in addition to returning it to the client. Among other things, this will be used to support rollback when upgrades fail.

There is more work to be done to add APIs to support management of these backups. This will be done at a later date by the Moonstone team.
The error text comes from pre-existing code.

The problem with returning the original error text is that it goes straight to the client output and will mention short-lived temporary directories on the server. This isn't terribly helpful.

What about logging the actual error and returning "backup failed: couldn't open backup" to the user?