renames are fun when you do it right.
Add struct lambda, accessors, and print/copy/del.
Having it a separate struct makes it more distinct from builtin.
Added BUILTIN macro to make declaring new builtins easier/cleaner.
In all my years of coding C, I've never realized you can do the
typedef with a bogus not-yet-defined struct inside. Cleans up a lot of stuff.
Initial lambda/call success.

Added lambda type. Separating it from builtins because I'm still using
a union and it made testing for builtin being non-null a no-go.

I renamed builtin_var to lenv_add because FUCK ME does this author
suffers from poor naming skills. I also made it take a global boolean
instead of a string.

I'm trying not to freak out on this whole thing... but this design is
trying my patience.