wip temporarily disable scalastyle
massive compiler refactoring

working towards completely cutting all dependencies of compiler
front end on engine.  not actually all the way there yet.

this collective work by Seth, Jason, and Robert is summarized at
https://github.com/NetLogo/NetLogo/wiki/Compiler-Refactoring-Notes

major changes include:
- primitive classes split into front end and back end.  front end
  prims are immutable and don't depend on nvm.
- reordering of phases. Optimizer now runs after AgentTypeChecker
- Let handling was heavily redone
- Reference handling redone; prim._reference eliminated