Support EXPOSE [port] ... for Docker

Docker allows the ability to share ports between containers, if the ports
are listed in the configuration for the Docker image. This commit adds a
dockerExposedPorts setting which adds the appropriate line.
Merge pull request #278 from garycoady/wip/docker-expose

Support EXPOSE [port] ... for Docker
Support building and publishing Docker images.

This provides reasonable behaviour for Docker publish/publishLocal tasks.
docker:publishLocal maps to "docker build -t [dockerTarget] ."
docker:publish maps to "docker push -t [dockerTarget]"
docker:dockerTarget has a default value of [dockerRepository]/[normalizedName]:[version]
Put ProcessLogger-related code into their own functions.

This puts the logging for publishLocal into a separate function. The logging
for publish is defined within the scope of publishDocker, as it is most
convenient for accessing and modifying the value of the volatile variable
"loginRequired".