Lambdas: addition works, but identity doesn't.

Identity StackOverflows!
Clojures work.
Clojures work, but Y doesn't. Why??
How is Y supposed to work without `if`, genius?
Cleanup.
Manage the environment => closures => Y

Needed better tests for closures. Not only do bindings propogate down,
they also shouldn't bleed out. Once you see that in the application of a
procedure, you need to carefully manage the env bindings (i.e. revert
them back to what they were before the function began execution). Since
everything is in CPS, you've got (eventually) all the envs you could
ever want.

Thanks to @happy4crazy!
Arithmetic calculator cleanup for Hacker School presentation. Would be nice to have a calc that uses an explicit stack, i.e. tail-recursion.
Define and set!
Let
Begin and cond.

TODO: introduce mutation into the predicate arguments of `cond` and `if`
to test whether they the mutations occur properly.