fix: cluster base + U+FE0F as a width-2 emoji glyph
measure() and render_text() summed per-codepoint widths with no
grapheme awareness, so a base codepoint followed by U+FE0F (variation
selector-16) measured as base-width + 0 instead of one width-2 emoji
cluster. Add a one-codepoint lookahead to both loops: when the next
codepoint is U+FE0F, treat the pair as a single width-2 cluster, place
only the base glyph, and consume both. The wcwidth table is untouched.
The repro's bordered-fit assertion was rescoped to the render path;
the separate "fit() border does not reserve layout space" behavior is
tracked in its own issue.
Fixes #81