Don't have to parse a whole module for this
Allow core tests to be used by other subprojects
Constants are now specified in module definitions, and can only contain primitives
Made ModuleDefinition an interface
Typo
Nicer formatting
Added some tests
Allow modules to have annotations
Fixed Haxe deprecation warnings

Added deprecation warnings everywhere where they apply
Made deprecation warning generation semi-automatic
Removed extra comments about type and name of deprecated entity
(file/line location is available anyway)
Fixed invalid input
Report and stop at lexer syntax errors
Do it with immutable state
Code cleanup