Fix crash with line offsets

Under certain circumstances, we end up trying to iterate to the last text
offset that a TextLayout reports to us. Unfortunately that last element was
indexed past the end of the layout's line metrics, so we'd crash. Should only
be including offsets up to, but not including, the last one for consideration.
Bit better treatment of with text spacing

When text blocks had larger :leading values, it revealed that we were removing
too much from the next positioning. Big part of it was where we were
taking out double the leading, which before had looked right, but only at small
leading values.

There are still some differences in the exact placement compared with Shoes 3,
bit this is a distinct improvement for the time being.