๐ fix anchor eviction in single-line buffer + document columns precondition
Fix two blocking issues before merge:
1. When maxLines=1 and isAtBottom=false, evicting the anchor line left
the anchor pointing at a gone lineIndex. resolveViewport() returned
no entries from a non-empty buffer. Removed the `lineCount > 1` guard
so the anchor always clamps to `evictedLineIndex + 1`. Added
regression test R.EVICT.maxLines1-not-at-bottom.
2. Resolved the contradiction between O-9 ("every slice fits within
columns") and the columns=1 + width-2 CJK glyph behavior. Documented
columns โฅ max glyph width as a precondition on VirtualizerOptions,
updated O-9 test name, wrap-golden test labels, and the spec.