Refcount images and cleanup orphans

Also add versioning to the storage backend, and lay some groundwork
for a more opaque storage driver.  It shouldn't take too much more
work to factor out the file-based assumptions out of driver.Base, but
I've left that for later work.  See the commit messages for details on
specific changes.  And let Travis complete before merging, since I
haven't even run this locally yet ;).  I'll try and get on tomorrow
and link this to some earlier discussion, but I don't have time to
look up the references now ;).