Added explicit DockerInfo within ContainerInfo.

Added new DockerInfo to explicitly capture Docker options, and allow
command URIs to be fetched and mapped into sandbox, which gets
bind-mounted into the container.

Review: https://reviews.apache.org/r/24475
Used new CommandInfo with Docker::run.

Review: https://reviews.apache.org/r/24673
Fix for configure --disable-python
MESOS-1693: enable build against non-x86 arch

Enable building against non-x86 arch, namely arm builders on Fedora.

Review: https://reviews.apache.org/r/24563
Fixed a few compiler warnings in stout.
Redirect Docker logs.
Added a user doc for framework rate limiting.

Review: https://reviews.apache.org/r/24667
Fixed missing '+' in docker.cpp.
Fixed style issues in slave/flags.hpp.
Fixed LDFLAGS for prefix installation of libev.

Review: https://reviews.apache.org/r/24733
Added support for disabling glog initialization for drivers.

Review: https://reviews.apache.org/r/24687
Fixed a few issues in configure.ac.

Review: https://reviews.apache.org/r/24734
Added document for network monitoring.

Review: https://reviews.apache.org/r/24719
Make sure the mesos-fetcher exits if the slave terminates.

Review: https://reviews.apache.org/r/24722
Introduced "states" for Docker containers to transition between.

The DockerContainerier needs to be able to properly clean up Docker
containers, regardless of when they are destroyed. For example, if a
container gets destroyed while we are fetching, we need to not keep
running the fetch, nor should we try and start the Docker
container. For this reason, we've split out the states into:

  FETCHING
  PULLING
  RUNNING
  DESTROYING

In particular, we made 'PULLING' be it's own state so that we could
easily destroy and cleanup when a user initiated pulling a really big
image but we timeout due to the executor registration timeout. Since
we curently have no way to discard a Docker::run, we needed to
explicitely do the pull (which is the part that takes the longest) so
that we can assume we won't have to wait very long for Docker::run to
complete.

Review: https://reviews.apache.org/r/24754
Improved safety of "higher-level" io::read/write.

These functions tend to read and write "everything" and are often used
with things like Subprocess. A common pattern is that someone will
read from Subprocess::err/out but not hold on to the Subprocess
instance which will cause the underlying file descriptors in
Subprocess to get closed before the io::read/write has completed. To
make this safer, we do what we did with io::redirect and automatically
duplicate the file descriptor.

This was also a good opportunity to remove io::splice from the public
interface since it's not being used and is inherently dangerous.

Review: https://reviews.apache.org/r/24755
Cleaned up usage of io::read for new semantics.

Review: https://reviews.apache.org/r/24757
Allow override without CommandInfo::value to run in command executor.

Review: https://reviews.apache.org/r/24730
Allow external isolator flag to be backward compatible.

Review: https://reviews.apache.org/r/24731
Added TODO for os::killtree.