Fix import name case error

repl.js imports "./tinyLisp", but the actual file is called
"tinylisp" (note lowercase L). This breaks on Linux since
the file system is case-sensitive.
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).
Add if, and, or

And, or behave correctly with respect to short-circuiting.
This is not testable, unfortuantely.
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.
Mave let and lambda creation fns to `special` obj.
Keep `if`, but not and or or.
Mention if support in readme.
thanks.
rm dupe fn.
Do test with `in` instead of testing for undefined.
Split interpret() into sub functions for arrays and identifiers.
For clarity, rename Ctx to Context and ctx to context.
Rename interpretArray() to interpretList().
Make let bind more succinct.  Use generic var name for binding data.
Use reduce() rather than forEach to make let context.
Remove Underscore dep.  Never used Underscore.