Add backup and restore functionality

This allows you to backup grains as zip files, and then restore them on any sandstorm instance, as long as the same appId is present, and the installed app is a compatible version.
Can we make these copies async? With futures it should not uglify the code too much. I'm worried about someone hanging the server by trying to pack a gigabyte grain.

Longer-term we should avoid the copy, maybe by running in a sandbox with clever bind mounts.