Semantic merger pt 1
Semantic merger pt 2
Now crate a set of uses / definitions via a more generic way.
Add to the testrunner.
Add to the testrunner.
Completely refactor the semantic checker. It is now way more modularizable.