Implement a Docker "run" task.

This adds the ability to perform a Docker "run" via a second task type.  As part of this I refactored code common to both the existing build task and the new run task into an abstract base class.

Note that not all run options are supported at this point, just the ones I needed ;).  More can be added later (within the constraints of the docker-java API).