Detect filesystem types supported by kernel

When setting up the union filesystem, instead of relying on the Ubuntu distro
name to detect what type of filesystem to use ('aufs' or 'overlayfs'), detect
the filesystem types supported by the kernel based on the contents of the
/proc/filesystems file.

This commit also tries to load the union filesystem modules via modprobe, in
case the kernel supports the filesystem type but the module is not loaded at
boot time.
Merge pull request #52 from cloudfoundry/union-fs

Detect filesystem types supported by kernel
Revert "Detect filesystem types supported by kernel"

This reverts commit 61b80603199cd59b20af34d606a3d8b5ba40e483.

This appears to break nested Warden, which currently abuses the previous logic
to fool it into using overlayfs instead of aufs. This commit prevents that hack
(which is nice) but we probably don't want to break nested Warden at the same
time.
Ignore IDEA .iml files
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 caused the memory to be exceeded) will be suspended
and the oom notifier will be driven.

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
terminates the container so this will ensure that all tasks in the
container are ended.

Note the oom killer kills the problem task abruptly. A possible sequel
to this change is to move oom killer responsibility to warden so it
can issue SIGINT, wait, and then issue SIGKILL if necessary. This
would give the problem task a chance to produce its own diagnostic
dumps.