Attach scope to every AST node
Move to LLVM based typing system