Pull various parts of the UnwrappedLineFormatter into their own abstractions.
NFC.
There are two things left for subsequent changes (to keep this reasonably small)
- the UnwrappedLineFormatter now has a bad name
- the UnwrappedLineFormatter::format function is still too large
The current plan is to rename the UnwrappedLineFormatter into BlockFormatter,
put more of the local variables of format() into class members (perhaps add
an abstraction for keeping track of the indent levels), and split format() up.
I am not sure what the long term solution for UnwrappedLineFormatter/BlockFormatter is. I think we will probably want to try to separate the individual concepts into different classes (indent level tracking, deciding which line to format and how, deciding which formatter to use).
Until we have that, I'd like it to remain a container for the formatting configuration and pass it to the different LineFormatters (so that LineFormatter::formatChildren() can just call format).