Use explicit service ports in Docker links

Rather than checking for `<NAME>_PORT` and parsing it, just use these
to signal that Docker links are in use and then access the address
and port by looking up the known port number in the detailed variables
`<NAME>_PORT_<PORT>_TCP_ADDR` and `<NAME>_PORT_<PORT>_TCP_PORT`.

Otherwise, we might try to connect to the wrong service. For instance,
a postfix container might expose 22 (SSH) and 25 (SMTP) and trying to
connect to the address described in `MAIL_PORT` would result in an
attempt to connect to port 22. Instead, we should look up which local
address and port this container should use to access the linked known
port 25 on the linked container.

This seems more how linked container ports should be used. It's safe to
assume that the services are on their known ports inside their service
containers because they can be exposed without being public to the host
machine's network interface. That means any number of containers could
be using the same port for their services and will always expose the
well-known port number. However, the local port for the container that
wants to access that service via the link may be different, which is
why `<NAME>_PORT_<PORT>_TCP_PORT` must be checked, in addition to the
address.