Working

Works mostly fine. Can `define` both variables and procedures.

TODO: Change how closures work with the fn_defs stack. Try to make use of unboxed closures when available.