Fixing Program/BlockStatement rewrites

Fixes #90

There is one failing test I haven't figured out how to fix yet. We need to unwrap `ExpressionStatements` for the general case but here if we don't then we end up with two semicolons.
Hmm, good point. So this is just the raw output from the rewrite before the formatting has been applied.