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.
Type and bugfix
Fixed typo of occurrences + tidying up the outliner
Refactored prettyprint quite a bit. Code is readable, output is not really pretty because it spans multiple lines (see next commit)
Refactoring of prettyprint, 'the unreadable commit'. Output code now _really_ is pretty, but code is horrible.
Merge branch 'kemi'; Merge our branch into master.