First version of tail call optimization. Still need to figure out name shadowing and what happens when a return statement appears under a lambda.
Self-calls must not appear under a function in a tail call. Remove nested blocks during optimization.
Bump version to 0.2.9
Merge branch 'tco'