Reduced over-include in libprocess Socket.

Timeout only uses clock. Reduce inclusion to clock as opposed to all
of process.hpp. This helps prevent circular dependency when we include
future in socket.hpp.

Review: https://reviews.apache.org/r/27024
Used CHECK_SOME in module manager.
Added --modules flag for tests.

This allows the user to specify the modules to load during tests.
The modules are made available to the master and slave subsystems.

Review: https://reviews.apache.org/r/26796
Added a libprocess network benchmark.

The benchmark forks and launches multiple "libprocess" processes in
each child. They are aware of the "master"'s (parent) address and all
play ping pong with it. This benchmark measures throughput in terms of
the number of RPCs handled per second using persistent (linked)
connections.

A new test file (benchmarks) is introduced because we want to fork
before libprocess is initialized. This allows us to prevent
short-circuiting of message passing between processes under the same
ProcessManager. This way we force the execution path of the underlying
event management system.

Review: https://reviews.apache.org/r/26150
Added module loading support for local clusters.

Frameworks triggering a local cluster (--master=local) now have module loading
support via slave and master flags (--modules).

Review: https://reviews.apache.org/r/26775
Fix Libprocess benchmark OSX

pipe2 does not work on osx.
Replace pipe2 with a helper function that sets up the pipes using pipe()
and then stout/os::cloexec().

Review: https://reviews.apache.org/r/27116
Revert "MESOS-1857 Fixed path::join() on older libstdc++ which lack back()."

This reverts commit ca2e8efcad7d312c6e93acd3546b6811a9f0df19.
Revert "Switched path::join() to be variadic".

This reverts commit b08fccf8f5ea325b8c38055b5f2c03509744dd9b.
Discard label/tag when parsing Version string.

Review: https://reviews.apache.org/r/27115
Add std::unique_ptr and std::move checks to configure script.

Review: https://reviews.apache.org/r/25448
MESOS-1986: Deprecated disabling slave checkpointing.

Review: https://reviews.apache.org/r/27120
MESOS-1712: Automated disallowing of commits mixing
mesos/libprocess/stout.

Review: https://reviews.apache.org/r/26825
Suppressed verbose wget output in support/apply-review.sh.
Moved framework id validation from scheduler driver to master.

Review: https://reviews.apache.org/r/27102
Add --enable-debug and --enable-optimize flag for controlling building debug and optimized verisons of mesos

Reworks buiding mesos in a "debug" vs. a "release" configuration. By default, mesos is built in a developer-centric setup (No optimizations, minimal debug info), in order to maximize developer productivity

None: '-O0 -g1'
--enable-optimize == '-O2'
--enable-debug == '-g'
--enable-optimize --enable-debug == '-O2 -g'

If a user / developer passes CXXFLAGS or CFLAGS manually, then they are not changed / touched at all. This is important so that Mesos is a good citizen when being built for various distributions (As well as making it so specialized one-off groupings of flags are feasible to use).

Adds two defines for accessing what mode things are being built in: 'DEBUG' and 'OPTIMIZE' which can be hooked into later to enable extra logging and the like. For release builds we may want to set 'NDEBUG' which removes assert()'s, but that is a seperate discussion.

Review: https://reviews.apache.org/r/26426
Add alternate os::chown taking uid and gid.

Review: https://reviews.apache.org/r/25655
Required explicit run of the libprocess benchmark.

Review: https://reviews.apache.org/r/27130
Implemented array subscript lookup in JSON::Object::find.

Review: https://reviews.apache.org/r/26634
Fixes necessary due to JSON::Array::values change to std::vector.

Review: https://reviews.apache.org/r/26635
Mark running tasks killed during framework shutdown.

When a framework is shut down e.g. by calling driver.stop() from the
scheduler, running tasks are marked KILLED before migrating them to
completed.

Review: https://reviews.apache.org/r/25250