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.)
It might be clearer to just call this "closableBuffer" since the only reason you have it is to add a Close() method.

Though we might already have a helper object that does this?
there appears to be one in httpstorage/storage_test.go but it isn't one that is trivially available.
https://github.com/juju/juju/pull/200/files#