Add ProcessingMode enum and process_with_mode function to Phase 3
content stream processor:
- ProcessingMode::Normal: Extract text with full Unicode resolution
- ProcessingMode::PositionHint: Emit U+FFFD with confidence=0.0, but
compute bboxes correctly for use by 5.5.2 validation filter
PositionHint mode skips ToUnicode CMap lookup, making it ~10% faster
than Normal mode. The text matrix advances identically in both modes.
Unit tests verify:
- Same input PDF, Normal vs PositionHint -> bboxes identical, Unicode differs
- All PositionHint glyphs have unicode=U+FFFD and confidence=0.0
- Text positioning operators (Tm, Td, TD, T*) work correctly
Closes: pdftract-5u7h