Insert newlines into emitted JS to make debugging easier
Use multimethods to clean up emitter code
Distinguish between lists and invokes during analysis phase
Categorize :op as "block" or "non-block"
Cleanup: drop unneeded :quoted? param to emit-collection :list
Clean up analyzer code using variadic assoc