Add SessionIndex and SessionMaterializer
SessionIndex:
- SessionMeta, MessageMeta, PartRef types for lightweight indexing
- Build index by scanning storage directories
- Relationship maps: by_session, by_message, by_project
- Lookup methods: session(), message(), part(), sessions_for_project(), etc.
SessionMaterializer:
- Combines index with FileReader for efficient access
- Lazy content loading via mmap cache
- load_session_tree() for complete session assembly
- Query methods: sessions_by_time(), sessions_updated_since()
- Stats for monitoring index/cache size