switch def to be a special form
add fn, which constructs a function, and remove defun in favor of (def name (fn ...))
support applying functions instead of just looking up atoms
add tests for string concatenation
add simple REPL
add ToStr impl for LispValue; REPL uses it