Cleanup: initializeVolume

- Use a common struct for Volumes
- Split out some functionality in intializeVolume into separate functions
- Removes some duplicate code
- In general much easier to grok the code now

Docker-DCO-1.1-Signed-off-by: Brian Goff <cpuguy83@gmail.com> (github: cpuguy83)
Because it's specifically for bind mounts right now.
I hope to also have applyVolumesFrom use this parser as well.

I don't think it makes sense to rename just yet, imho.