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
update sample-scala extension for latest changes here
Ripping out `token2`

Turns out that it wasn't even really being used...
add comment
clean up: merge ParserTests into FrontEndTests
relocate StructureDeclarations to core

this is preparatory work towards creating core AST classes.
we'll be using StructureDeclarations.Procedure in those,
we anticipate.
wip split core.AstNode off from compile.AstNode
wip refactor so backifying of prims is its own subphase
wip make ExpressionParser use core ASTs up until the last minute
wip get backifier stuff out of ExpressionParser
Move StructureResults to org.nlogo.compile.front.

- Extract common interface for procedures to api.FrontEndProcedure
- Remove nvm references from NameHandlers, Namer, StructureConverter, StructureParser
- Move backification marginally later in the compilation process
refactor: collapse frontEnd and frontEndHelper into one method
wip introduce FrontEndResults type
wip refactor
wip refactor
wip refactoring, tests don't compile yet
wip refactoring nothing compiles right now
wip refactor
wip not even compiling, but getting pretty close