SI-8630 lineToString no longer long by one at eof

One more EOL crasher, or lack-of-EOL crasher, when the text
is at EOF.

It was not caught by the last round of excellent and
thorough tests because

```
// If non-whitespace tokens run all the way up to EOF,
// positions go wrong because the correct end of the last
// token cannot be used as an index into the char array.
// The least painful way to address this was to add a
// newline to the array.
```

Review by @retronym