uroot/root.go: modify/extend it for more complex roots
uroot/root.go: modify/extend it for more complex roots

We've had a relatively simply model for root file systems
that let us mkdir, mknod, mount, and create files.

minimega wants cgroups, and we're building minimega appliances,
so we need to bend in that direction.

cgroups breaks our simple model; it requires this weird interleaving
of mkdir, mount, mkdir, mount, symlink games. See: systemdwars(1)

The new state machine takes an array of interface{}, does a
basic type switch and takes action. The code is actually a lot
easier on the eyes, it turns out.

Signed-off-by: Ronald G. Minnich <f569d0af9a3481c4007b95c7180d6c41009f2513@gmail.com>

GanShun/u-root,rminnich/u-root,u-root/u-root,rminnich/u-root,u-root/u-root,rminnich/u-root,hugelgupf/u-root,rminnich/u-root,GanShun/u-root,hugelgupf/u-root,u-root/u-root,GanShun/u-root,hugelgupf/u-root,hugelgupf/u-root