refactor: extract traits and modules for provider abstraction
- add Embedder trait (providers.rs) for swappable embedding backends
- add VectorStore trait for swappable vector search backends
- extract scoring/fusion logic into scoring.rs module
- extract filter logic into filter.rs with composable Filter trait
- refactor VoyageEmbedder and TurbopufferStore to implement traits
- simplify search.rs using new abstractions
- add unit tests for scoring and filtering
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>