Add eval with literal, quote, begin, and if
Tweak all vector access to avoid implicit copy warning...
add extra logging and backtrace to compiler errors
Ignore the non-implicitly-copyable stuff for now. ~strs are ubiquitous
Define environments
Refactor eval to clean up nesting in match
Add tests on if to confirm that everything is evaluated
Add environment to eval
Add variable resolution
Add define
Add set!
Fix begin to actually evaluate all arguments
Changed set! to disallow variable definition