Put asserts in a block, pulled Lets out into LetStmts.

A bit of improvement to the HTML output:

- Contiguous asserts get moved into a collapsible block.
- Lets are moved into LetStmts. 

These transformations are not returned, the IR transformations are only used for HTML output.
I thought about it, but the thing I do here to identify the block as a block of asserts is pretty hacky/ugly, I'm not sure we should add it to the IR in general.

What do you guys think about adding a new IR node "CommentBlock"? It would have a string representing the comment, and a Stmt child that the comment applied to (could be NULL).

If we had that IR node, I would modify codegen to generate the asserts directly into a CommentBlock IR node.