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 and empty directories.

Modifies the API to support mounts from Volumes
instead of VolumeMounts.

Noted, I don't foresee an immediate use outside of kubelet, but I think I'd rather keep it separate to support the notion of kubelet using utilities provided by volume types, rather than having it's own internal library. Theoretically, the same volume preparation methods could be used in environments outside of kubelet.