AST Based Linear Scan Register Allocator

And some simple optimizations around binding to non-memoized functions.