Implement basic text shaping with kern table parsing
- Add kern table parser (version 0, format 0 subtables) with binary
search lookup for kerning pair values
- Add ShapedGlyph type and Font::shape_text() method that maps
Unicode text to positioned glyph runs using cmap, hmtx advances,
and kern pair adjustments
- Add Font::kern() and Font::kern_pair() public API methods
- Fonts without kern tables work correctly (zero kerning)
- Comprehensive tests for kern parsing, shaping pipeline, scaling,
empty input, and space handling
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>