Add the client side of the backup API.

This builds on the work of Michael Foord.  I've reorganized the code a little, added tests and factored out the raw RPC code from the backup client code.  (The raw RPC can later be re-used by the other 2 client methods that currently duplicate the code.)
I would probably put a little bit of prefix text in your tempfile. That way if there is ever a bug where we aren't cleaning it up, we can know WTF /tmp/tmp-aoeuaoeu8fa,ueohu files are, and track them back to the test that is actually generating them and fix it.
Something simple like "test-juju-backup-" is good here.