change the scale_ scalar

for the scale matrix version.

Also tried to fix mouse hit testing, but something is not right. See
lines 671 and 672 for the attempt.
add EOF textblock

We add a final textblock with a special state == eof and make the
needs_layout() properly reflect the fact that we have a dwrite layout
object or not. Previously being smuggled on the metrics.lineCount
member.

This fixes a problem that the cursor could not be moved by mouse to the
last block because the last block would never be in the loop.

Same problem if instead of loading a document the user just typed a few
words, the cursor could not be positioned with the mouse either.
fix garbage at the end of the loaded file

we remove the CRs form the file but in the erase-remove idiom we forgot
the erase part.

The garbage does not look like garbage, it is just part of the text
repeated at the end so it took this long (12 days) to spot.