Statics
Big fat branch with a lot of unrelated miscellaneous commit
It's supposed to mainly implement static parameters/arguments on functions, but really doesn't do it fully while implementing completely unrelated things. The goal isn't to have something perfect, but to lay foundations so this branch can be merged as quickly as possible so that subsequent modifications can be smaller, tidier and more atomic.