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.