Stop using the self global
high priority, frequently broken by changes:
- [x] back up global `self` into local `this` for every function that was using it
- [x] replace all self assignments with `setself` (which *currently* does the same thing, but is easier to search for and can be changed to do other things, like not compile)
---
less urgent, can be done long term post merge:
- [ ] replace `setself` with `WITH`
- [ ] replace `SELFPARAM` with an actual parameter for functions the engine doesn't need to call
See merge request !134