Expand names in def forms during analysis phase
Define constant AST nodes for true, false, nil
Analyze right-hand exprs in let bindings
Construct intermediate envs for sequenced let-bindings

Rather than treating let-bindings as if they all occur at once (as we
had previously been doing), we now take into account which locals are
defined during each phase of the binding analysis in order to produce
properly-ordered assignments in the emitted JS.