test: add load() tests with mock service DI (IOS-INFO-035)
- Add service protocols (KnowledgeBaseServicing, KnowledgeItemServicing,
QuizServicing, ReadingProgressServicing) for dependency injection
- ViewModel init accepts optional mock services, defaults to .shared
- Mock service classes for test isolation
- load() tests: itemCount, quizCount, aiStatus ready/processing,
isLoading, readingStatus/seconds, isMarkedRead, progress error,
nil materialId skips progress
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>