oom diagnostics

Disable the oom killer for a container's memory cgroup when the
container is being set up. If oom occurs later, the problem task (that
is, the one which attempting to acquire memory) will be suspended and
the oom notifier will be driven. This gives us the opportunity to
gather diagnostics while the problem task is still alive.

In the oom notifier, log memory statistics and re-enable the oom
killer to kill the problem task (or at least some task in the cgroup -
the oom killer is not entirely predictable). The oom notifier already
terminates the container so this will ensure that all tasks in the
container are ended.