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.)
FYI, there are 3 other commented-out tests to which I also forgot to add notes.  I'll add the notes.  They are disabled because I'm not sure how to get the tests to work (or if I even need to worry about those cases).