๐ fix three edge-case bugs with wide chars at narrow columns
1. resize() now clamps anchorSubRow using exact wrap count instead of
ceil(displayWidth/columns) estimate, which undercounts when boundary
waste from wide characters increases actual sub-row count.
2. _recomputeCurrentEstimate() clamps currentEstimatedVisualRow to
[0, totalEstimatedVisualRows-1] so the scrollbar invariant holds
even when exact wrap counts exceed the estimate.
3. computeWrapPoints() no longer emits wrap point at index 0 when the
first visible character is wider than columns โ the character
overflows its row instead of creating an empty first sub-row.
Adds 4 regression tests covering all three fixes.