Type checking and symbol/scope table implemented

DON'T MERGE THIS YET
I'm still in the middle testing everything to make sure this doesn't break our compiler

EDIT: (merging)
It compiles all our example svel programs correctly... I'm merging this for now.
If we need to revert -- commit #: 9b6afe729bdeea478c073ed3c97f230c0381c295