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)
This is more go-way to return immediately when you can, also here you see what exactly the error you returning. Rob Pike don't like "less-code" strategy and you can see this in Go design :)