detect flat cgroup mount, mount cgroup accordingly

If an existing cgroup mount is mounted flat, all other cgroup mounts have to
be flat as well. Similarly, if there are existing mounts for individual
subsystems, other mounts have to be done the same. So, detect if there's an
existing flat mount, and mount ours flat as well, and just bind-mount each
subsystem.
use more specific intermediate host mount point

mnt/ is very generic and happens to match other containerization systems'
(say, Docker/LXC) mount points, so running Garden in them is tricky.

so, mount to tmp/warden-host instead. this mount point only exists for a brief
period of time during container creation (after pivot_root and before the
daemon starts), so it makes sense to be as portable as possible.