Fix stout/os to properly check errno from getpwnam_r.
Support some Linux systems (e.g., RHEL7) which return non-zero and set
errno to indicate a user or group was not found.

Review: https://reviews.apache.org/r/24249
Removed unused code from future.hpp.

Review: https://reviews.apache.org/r/23874
Made WeakFuture<T>::get a const operation.

Review: https://reviews.apache.org/r/23875
Master detector cleanups.

Review: https://reviews.apache.org/r/23866
Handle discards on the master detection futures.

Review: https://reviews.apache.org/r/23867
Added a ping timeout in the slave to trigger a re-detection.

Review: https://reviews.apache.org/r/23868
Fixed header paths for proto files during installation.

Review: https://reviews.apache.org/r/23704
Added a 'Docker' abstraction.
Added a Docker containerizer.
Bug fixes and cleanups in Docker abstraction.
Integrated DockerContainerizer.
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.