Storage abstraction layer for LLMTrace
Provides storage backends for persisting traces, metadata, and cache.
The primary backend is SQLite (via sqlx), with in-memory backends for testing.
Use [StorageProfile] to build a complete [Storage] composite from a
configuration profile.