many fun changes here

* options to boot a vm in the background or the foreground
* do an arbitrary modular diff on a vm image by sourcing disk.diff