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.
early error - any error (can be produced at parsing\binding\typechecking step) that blocks emit
parse error - error produced by parser when it scanner returns a token that parser does not understand in its current state (as opposed to grammar error when parser can interpret the token but interpretation is not legal from the grammar perespective)