Adds a `cursorLine` (+ `cursorColumn`) prop that scrolls the editor to and
places the caret on a 1-based line, applied on mount and whenever it changes —
so a consumer opening a file *at* a line (e.g. jump-to-match / error nav) can
position the view there. Also exposes imperative `revealLine(line, column?)` /
`setCursor({ line, column })` on the editor context (which focus the editor).
The editor is a custom textarea+overlay (no Monaco/CodeMirror), so reveal
computes the line's char offset (clamped via lineColumnToOffset) for the caret
and centers the line by scrolling the panel container. Out-of-range positions
clamp to document bounds. Pure offset helper unit-tested; reveal/scroll
verified in-browser (centers on mount + re-reveals on target change).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>