Replaced closure based procedures with a method using values.
No more pesky closures with bothersome lifetimes to worry about!
User defined procedures are now stored by value and dynamically used as
functions in `Env.call_proc`. As a consequence of this, the standard
procedures are now stored as functions, rather than closures, and a new
enum `ProcOrFunc` has been added to differentiate between user defined,
value based procedures, and stdlib functions.