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, yah. So, what happens now is that when rewriting it only mangles the matched expressions, without context. So only the matched expressions will be formatted, post-rewrite. It may make sense to explicitly re-format the entire output. What do you think?