Initial implementation of optimized closure environments.
Remove smurf naming convention from exceptions.
Make mutation independent of the Environment.
Fix a bug when mutating undefined symbols.
Move predefine semantics out of environment.
Move some types of bindings outside of Environment.