ir: Add Union
visitor: Add Union
parser: Add Union
semantic: Add Union
llvm: Add Union
test: Add Union
semantic: Discard TypeReference completely when checking for Type equality
test: Add TypeReference bug
test: Add implicit conversion bug