Adds storage driver interface, tests, and three basic implementations

Re-opening of #630 with the new orphan next-generation branch.

@dmp42 @wking @bacongobbler @noxiouz 
We are going to use move in the registry, a lot. Tarsums / checksums need to be computed, and the file needs to be complete. So, the layers will be moved to their final destination once they are complete. Whether the driver implements a smart "move", or is just smart when copying, should be hidden under the specific method call.

I'm +1 on keeping move.