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.
FWIW, the reason I like that syntax is that it avoids unnecessarily leaking vars into the enclosing scope. There's a readability (or at least ease-of-analysis) argument to be made either way -- long lines hurt, and so do unnecessarily polluted scopes -- but if we can restrict scope and *also* keep line length sane I'd generally prefer to do so.