Adds storage driver interface, tests, and three basic implementations

Re-opening of #630 with the new orphan next-generation branch.

@dmp42 @wking @bacongobbler @noxiouz 
On Tue, Oct 28, 2014 at 03:23:37PM -0700, Olivier Gambier wrote:
> 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.

I'd wrather offload that implementation to the storage driver itself.
The registry just needs to say “I'm going to stream $COUNT bytes [to
$PATH]” (with the presense of $PATH depending on whether or not the
streaming storage is content-addressable).  Then the storage driver
can handle that however it likes, to avoid accidentally serving a
partially-complete file when someone asks for $PATH.