fix parsing of hostnames when we actually want IP addresses.

`docker run -p hostname:1234:1234 busybox true` currently explodes violently because of the way containerPort and and hostPort are passed to the bridge/portmap framework. This just adjusts the parser to provide a more accurate error message.

closes #7103
I would rather use http://golang.org/pkg/net/#ParseIP - that will work for ipv6 as well.