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)
so:
```go
if v.Mode {
   return  strings.ToLower(v.Mode) == "rw" || v.Mode == ""
}
return false
```
??