When tokens are split into lines, tokens that end with a newline are
emitted again as an empty token, which is confusing and doesn't have any
benefit. This conversion shouldn't emit a empty tail token.
Adds a test.
I noticed this issue by a CI failure for the output of a Go program that
was changed because of
d0ad679444 and the new output contained a
empty whitespace token at the beginning of most lines.
This is to solve an issue where writers returned by the Formatter
were often stateful, but this fact was not obvious to the API consumer,
and failed in interesting ways.