PortMapping: allow containers to recover even when they were not
managed by Network Isolator previously.

This eases deployment where a slave could be upgraded to use Network
Isolator without removing all the existing tasks.

- Added a new test.
- Moved all portmapping tests to a new file.

Review: https://reviews.apache.org/r/23214
Minor fix to mesos_tests_SOURCES in Makefile.am
Added 'bool' return value to Containerizer::launch.
Added composing containerizer and --containerizers flag.
Added a 'Docker' abstraction.
Added a Docker containerizer.
Bug fixes and cleanups in Docker abstraction.
Integrated DockerContainerizer.
Updated an example to use ContainerInfo to run Docker.
Add environment test for Docker.
Added pid() in docker/docker.cpp to get the pid of the container.
Added Docker::ps() "all" option.
Added rm() in docker.hpp/cpp to enable users remove containers.
Modify validate Docker to call 'info' instead.
Added Docker unit test, Docker flag and fix issues found.
Changed docker.kill() to docker.rm().

Since we actually want to destroy the container, so we need
to delete the container after killing it. We can do this by
calling docker.rm(), which by default does a 'docker rm -f'.
Added usage() for the docker containerizer.

Added one unit test for this.
Used 'flags.docker' in tests.

And some other minor style cleanups.
Exposed and used the Docker container name prefix.
Renamed variable to be more accurate.

Since we actually have a Docker::Container abstraction I
s/dockerContainer/dockerContainerizer/.