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.
this doesn't seem exactly right:

```javascript
function test() { var myA = 1, myB = 2; }
```

gets rewritten to:
```javascript
function test() { var myA = 1;
var myB = 2; }
```

is this the actual expected? I would assume it shouldn't get the newline?