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.