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.
Done! Let me know if you think what I wrote makes sense.