Implement glyf and OS/2 table parsing for glyph outline extraction
Parse TrueType glyph outlines from the glyf table:
- Simple glyphs: contour endpoints, flags, delta-encoded coordinates
- Compound/composite glyphs: recursive component flattening with
translation, scale, and 2x2 matrix transforms
- Public API: Font::glyph_outline(glyph_id) -> Option<GlyphOutline>
Parse OS/2 table for font-wide metrics:
- Typographic ascender/descender/line gap
- Weight class, width class, embedding flags
- Strikeout size/position, sub/superscript offsets
- sxHeight, sCapHeight (version >= 2)
Data structures: Point (x, y, on_curve), Contour, GlyphOutline
7 new tests against real system fonts, all passing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>