Let there be let

Introduced the (let[rec] ((name expr) ...) body) forms, which evaluate
body in an environment where all the name(s) ... are bound to the result
of evaluating the corresponding expr(s) ..., either in the surrounding
environment (let) or in the body's environment as it's being built (letrec).
Call let() fn let_() to avoid clash with let keyword.
Swap switch for if/else.
Remove letrec to keep feature set smaller.
Update readme with feature list.
Add trailing semicolon to fn.