Tests and improvements for the Commenter service

* Add initial tests for `FormatCommenter`
* Allow block comments to apply to the current line when no line comment formats are available
* Simplify user code by managing undo operation transactions in `CommenterFilter` instead of `FormatCommenter`