Enabled the kernel OOM killer.

The Mesos userspace OOM handler does not conform to the practical
restrictions imposed upon it given the potential states the kernel can
be in when it gets the OOM notification. The result of this has been
numerous deadlocks because the Mesos OOM handler blocks on a lock that
is being held by the task it is trying to kill.

This patch does not try to fix the issues with the OOM handler. Instead,
it hands over the job of OOM-killing to the kernel. The end result is
very similar. The downside to this approach compared to the approach
it's moving away from is now when the Mesos OOM handler reads the
memory.stats they will be after the oom condition occurred. The "maximum
usage" is still captured but the breakdown is lost. This exposes another
weakness in the memcg implementation regarding page cache awareness.
However, the reliability improvements outweigh the weakness in stats.

From: David Mackey <tdmackey@booleanhaiku.com>
Review: https://reviews.apache.org/r/14024
Added memory threshold notifications for inducing OOMs.

Review: https://reviews.apache.org/r/14043
Updated the balloon tests to test the memory threshold.

Review: https://reviews.apache.org/r/14044
Added resource checks to slave recovery tests.

Re-submit of reverted resource checks in slave recovery,
see: https://reviews.apache.org/r/13764/

From: Ian Downes <ian.downes@gmail.com>
Review: https://reviews.apache.org/r/14002
Fixed a bug with resource accounting during slave removal.

Review: https://reviews.apache.org/r/14431
Fixed a bug with resource accounting in reconciliation.

Review: https://reviews.apache.org/r/14435
Added a task reconciliation test.

Review: https://reviews.apache.org/r/14436
Added a union operator to hashset.

Review: https://reviews.apache.org/r/14437
Re-structured the Slave::tasks map.

Review: https://reviews.apache.org/r/14438
Simplified os::hostname() in libstout.

Review: https://reviews.apache.org/r/11108
Shuffle offers before sending to frameworks.

This helps ensure fair allocation of resources.

Review: https://reviews.apache.org/r/11121
Added --enable-debug configure flag.

Review: https://reviews.apache.org/r/11605
Slave ping timeout may be increased by flags.

Review: https://reviews.apache.org/r/12885
Turned down noise from ZooKeeper.

Review: https://reviews.apache.org/r/11127
Use hostname instead of IP for redirection.

In the Web UI, the redirection does not work for hosts where the local
interface address is not publicly accessible.  For example, with EC2 the
redirection will not work.

This change writes the Master's hostname into ZooKeeper, thereby
allowing the redirection to work with private IP addresses.

Review: https://reviews.apache.org/r/11975/
On recovery fail, do rm -rf /tmp/mesos/meta.
Use libstout cache for slave completedFrameworks.

The list of retired (completed) frameworks is now a stout cache rather
than a boost circular buffer.  There are now key iterator accessors for
the cache class, and a removal member.

Review: https://reviews.apache.org/r/13599
Added a slave load hint for scheduler sorting.

With this change, the offers will include a slave load hint based on the
5 minute load average for that slave (returned from getloadavg()).
Frameworks can use this hint to select among otherwise similar offers,
as an optimization.

Review: https://reviews.apache.org/r/13675
Added timestamps to TaskInfo.

TaskInfo now includes a start/finish timestamp for each task.  This is
particularly for debugging framework problems.

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