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.

Design question:  Should we wrap all of the "kinds" of sources into a struct Source or struct What?  This makes the JSON look more like:

    {
      "name": "foo"
      "source": {
            "hostDir": {
                "path": "/proc"
            }
        }
    }

We don't have to do it, but it has the nice property that the one-of is contained in a structure.