New umd compiler

I'm not quite ready for this to get merged yet, but I want to open it up to get feedback while I'm still working on it. There are a few use cases for the "globals" part of UMD that just aren't in there yet. Otherwise, I'm pretty sure everything else is working.