fix: zoom-invariant draw coords; add 15-test validation suite
Coordinate bug: `getBoundingClientRect().width/height` is multiplied by
the CSS zoom factor, but `element_coordinates()` (offsetX/Y) is not.
Dividing offset coords by BCR dims gave nx / zoom instead of nx. Fix:
fetch `offsetWidth` / `offsetHeight` from JS instead.
Refactored into `normalize_draw_coords()` for testability. Added 15
unit tests covering coordinate normalization (incl. zoom-invariant
invariant), rects_overlap, insert_blank_wrap, insert_blank_wrap_math,
and expand_math_selection edge cases.
Tagged v0.0.1 at prior HEAD before this fix.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>