Formatting implementation using new tree

This PR adds implementation of code formatting that works atop of new tree. I would not suggest to review the code commit-by-commit as intermediate checkins here often contain non-relevant details that are ultimately removed in final implementation.
i would think a block in a case/default clause would not be indentded.  i.e. i would expect to see:

```
case 0: {

}
```

Not:

```
case 0: {
    }
```