Updated log to use the new interval set abstraction.

Review: https://reviews.apache.org/r/18368
Prevented snappy and tcmalloc detection from leveldb configuration
phase.

Review: https://reviews.apache.org/r/18725
Removed requirement for GTESTS to use their own tuple in libprocess.

Review: https://reviews.apache.org/r/18852
Added ABORT and CHECK_* usage in Mesos.

Review: https://reviews.apache.org/r/18551
Refactored Cluster::Master::start methods

There are currently two overloads of the Cluster::Masters::start
function.  One takes a argument of AllocatorProcess* and the other
does not.  The AllocatorProcess* overload serves two purposes:
1) it allows an alternative implementation of AllocatorProcess to be
passed (i.e. a mock)
2) it changes the destruction timing so that the passed in argument
can outlive the master.

Beyond that, the two functions are identical.   This changes the
parameter to be Option<AllocatorProcess*> and allows all the logic
to be in one method.  The old function exists for back-compat but
now simply forward by passing in None() to the other function.

This is for two purposes:
1) reduce code duplication
2) position the code so that we can also optionally pass in a mock
repaier.

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