Stub of backup api

This is a stub of the backup API that I am proposing for general comments.  The big question right now is how we download backup files.  I don't know how to do that through our current API infrastructure, since we would need to stream them off of disk, we can't just return a []byte in a results value, since a backup may be multiple gigs of data.

I think William will also smack me for not making this a bulk call, but I'm not sure how one would make this bulk, so feel free to let me know.

The general idea is that backup will run async, creating a backup file.  While it's in progress ListBackups will return the name of that backup as an in-progress backup, which you can cancel if you wish.  Once the backup is done, the file is moved to a canonical place on disk, which is where the list of backup files is read from and returned from list backups.
If you're going to be Listing them, and storing them locally, we'll probably need ways of cleaning out old ones.
So I think having a clear Facade for "operations on backups" makes a lot of sense.
As such, probably a lot of your types here are a bit too specific. (They map exactly to an RPC rather than talking about a generic type.)
Other APIs we've used in this fashion have used Entities which just have a Tag on them.
We could certainly do the same thing here and talk about "backup-abcde" as the tag for a Backup with name "abcde". That might make things hang together with less duplication.

Stuff like Backups.Remove([]) should certainly be a bulk call, getting the URL for a bunch of named backups would be a bulk call. Actually requesting a Backup makes the most sense as a singular call, (and errors if one is already in progress ?)
Is it useful to be able to Cancel a backup? Is it better to just have a RequestBackup() => backup-name, URL that doesn't return until the backup has completed?
Have we tested how long "mongodump --oplog" is when we have a couple thousand units? I expect it to still be on the order of < 1minute, which is without our timeframe for waiting on stuff. (bootstrap potentially waits *much* longer.)