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'm not sure what the exact test you're looking to write here, but if you are patching the apiserver.Backup functionality in another test, certainly you could do that here, right?

Or is it more about breaking part of the local copying, or ... ?