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.

The cache is there to keep track of what has been mounted to cleanup after a pod is terminated. Once a pod is deleted, we can no longer use the pod's map of volumes, nor can we use the manifest to reference mounted volumes.