Implemented Phase 7.6.3: extract non-link annotations with subtype-specific
fields including:
- TextMarkup (Highlight/Squiggly/StrikeOut/Underline) with /QuadPoints
- Stamp with /Name icon
- FreeText with /DA default appearance
- Text (sticky notes) with /Open, /State, /StateModel
- Ink with /InkList stroke paths
- Line with /L endpoints
- Polygon/PolyLine with /Vertices
- FileAttachment with /FS filespec reference
- Other (Circle, Square, Caret, Redact, etc.) with no extra fields
Added AnnotationSpecific enum to capture subtype-specific extras while
preserving the stable AnnotationCommon struct. Unknown subtypes emit
as Other without diagnostics (future: emit unhandled_annotation_subtype).
Comprehensive unit tests for all subtypes including edge cases.
Fixed pre-existing borrow issue in content_stream.rs.
Closes: pdftract-3r77
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>