WIP: 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.

The patch is feature complete.  4 of the tests are failing due to being incomplete.  1 of them is a full functional test which I have not started, but shouldn't be too hard to write.  The other 3 rely on one final check on the resulting backup file which likewise shouldn't be too hard to write.  I'll leave this "WIP" until the 4 tests are done, but I doubt much is going to change in this patch.  Thanks!
If the backup request fails, an empty file will be left behind.