Global compiler

I did some final clean up and I think the global compiler is ready to be merged into master. I moved the virtual compiler into its own branch.
Needs some documentation.

After reading and running this for a bit, I think I know what's going on. However, a little documentation of the general approach could go a long way here.