Back to Search-quality baseline: CamelCase fragment recall (Phase 1.3, v1.2.0 candidate)

The `symbol_components` column does what #77 designed it to do: a query for a CamelCase fragment surfaces pages whose symbols contain that fragment as a component. This works for simple compound types (`LazyVGrid` → retrievable by `Grid`, `Lazy`, or `VGrid`), for protocol families (`Decoder` → retrievable surfaces `JSONDecoder` etc.), and for SwiftUI patterns (`Picker` → retrieves `DatePicker`, `ColorPicker`, etc.).

The BM25F weight balance is correct: with `symbols=5.0` and `symbol_components=1.5`, an exact name match always wins (verified separately by the canonical-lookup baseline `search-quality-baseline-v1.2.0.md` where `LazyVGrid` ranks the canonical `apple-docs://swiftui/lazyvgrid` at rank 1), and a fragment-only query still retrieves the right family via the symbol_components contribution.