feat: replace img_cloze with image rects in cloze cards
Remove CardKind::ImgCloze as a separate card type. Images now live
inside regular #cloze card bodies via #img("name") or native #image().
Drawn rectangles over image elements are stored in the sidecar under
CardSchedule::Cloze { rects: Vec<RectEntry> } where RectEntry gains a
src field identifying which image the rect belongs to.
tala-typst: collect image element bounding boxes (image_boxes) from the
rendered frame tree and return them in RenderResult.
tala/main.rs: dispatch draw-mode mouseup to sidecar when the drawn rect
overlaps an image box rather than text; display saved rects as yellow
SVG overlays on the active card using image-local → page-space mapping.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>