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