ir: Move scope getters from lookup to util
ir: Handle TypeReference in copyTypeSmart
ir: Add buildCastSmart functions
ir: Name TypeRef a bit when doing a smart copy
ir: Add builders for ExpReference and Struct
visitor: Make error printing better on bad scopes
semantic: Include printer visitors in LanguagePass
semanitc: Make sure to not duplicate nodes in IR
test: Update passing