Additional validation for container volumes and ports.

* Resolves #260 - Support ro mode for volumes
* Resolves #301 - Support `~` for home directors
* Resolves #449 - Support environment variables in external volume path
* Fixes a bug with `get_tty_width()` (needs to be an int, not a string, it's an error in python3, and does the wrong thing in python2)
* add to docs about using ro/rw with volumes