Grains detection for LXC and fix error in disk.usage under Docker

I have modified the core grains detection routines where dragons often lay, so this should be reviewed carefully.

I have elected to set the LXC detection inside virtual_subtype for account for cases wherein a user might be running inside VirtualBox (as the tutorial for Docker leads one to do). Moreover, I also allow the virtualization detection to continue after LXC is detected, as I believe it may even be possibly for Xen and LXC to co-exist. (Though, let's be honest -- probably not recommended!)

Finally, disk.usage now correctly fails with a warning message and includes a work-around for gathering disk usage under Docker containers. This refs #8976.