DEMO: Update default example.
PARSER: allow JS reserved words and Clojure special forms to be used as
identifiers, without ever shadowing them (exactly how Clojure does it).

Two related changes were required for this:

 1. Treating special forms like fn, let, if, etc. as special only when they
    appear in function position.

 2. Converting identifiers that are JS reserved words to non-reserved JS words,
    while simultaneously ensuring that they don't shadow other Clojure vars (by
    adding a '$' to the identifier, which is illegal in Clojure).
PARSER: Remove unnecessary undefined check for this from IIFEs. I don't know why I'd added it in the first place, but all the tests pass without it too, so wth.