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/.
Refactored Docker::Container::pid() to return an Option.

Safer to check for 'None' than 0. Also fixed a compilation bug
comparing signed vs unsigned values with CHECK_NE.
Made Docker::ps/rm default arguments match CLI defaults.
Be more mock friendly in MockDockerContainerizer.

Rather than having the MockDockerContainerizer store local variables
when certain events occur we can make the tests store what ever things
they need by mocking out the methods.
Added license in docker/docker.cpp.
Added docker_tests to test the docker abstraction.
Added docker::killAndRm() to performs 'docker kill && docker rm (-f)'

This will be faster than doing 'docker rm -f' on a running container.
Refactored docker::ps(), added 'prefix' option to inspect only interested containers.
Moved cpu/mem constants from cpushare.cpp/mem.cpp to cpushare.hpp/mem.hpp
Refactored docker::usage() and docker::run().

Support resources restriction in docker::run().
Support resources display in docker::usage().
Also fixed docker::usage() to check for destroying containers
before calling docker::inspect().