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.

Recommendation, possibly for a future PR:

Make a VolumeSource interface, with several struct implementations. I think that, if we register the types, we may not even have to write yaml/JSON setters to make it work. I don't really care for the fake enum in the VolumeSource struct.