Adds storage driver interface, tests, and three basic implementations

Re-opening of #630 with the new orphan next-generation branch.

@dmp42 @wking @bacongobbler @noxiouz 
I'm not committed to the `Move` method being part of this interface, although for specific implementations such as the local filesystem driver, this can be a huge win for these operations. I guess the main question is whether or not the registry has any need to move objects in its file storage.