Add a Backup() method to the API client

This is a simpler change than my previous one.  It does not try to pull out the common HTTP request code.  In the interest of getting this done sooner, here's a patch with smaller scope.  It stays closer to the original patch from perrito666/voidspace.

Note: I've decided to punt on a full functional test for backup.  It is too heavy a lift for this changeset.  For now we can just rely on the CI tests that we have for backup/restore.
Ah yes.  I left this in here as a review note.  It is basically an open question, though one that is relatively unrelated to this PR.  I'd argue that we want backup to succeed even if we can't save the backup to env storage.  What do you think?