Initial framework for external volumes. 

Lays the framework for external volume mounts, preparing for 
persistent disks and other volumes.

Currently, it only supports host directory mounts.

Modifies the API to support host directory mounts from Volumes
instead of VolumeMounts.

I believe you could miss in the delete window - have a cached copy from time t0, get new copy with deleted version at t1, begin deleting volume, crash at t2.  You'd need to have t0 and t1 copies on restart in order to apply the delete (maybe that's what you meant by checkpointing).  Seems like it might be easier to make allocated volumes follow the same rules as pods themselves - be able to be idempotent and garbage collected.  But I may be missing a potential problem specific to volumes.