fix(speakers): resolve segment audio by registered format, not hardcoded .flac master
The speakers review, per-sentence play, and owner/discovery sample players were dead on any journal whose segments store audio.m4a (every mac-captured journal), because every audio URL-building site hardcoded {source}.flac. Resolution now probes {source}.<ext> over solstone.think.media.FORMATS order (.flac first, preserving existing behavior when both exist), via one helper in the new leaf module solstone/apps/speakers/audio.py. Both duplicated _audio_url builders are deleted. serve_audio now serves the MIME type from media.MIME_TYPES and passes conditional=True, so browser range/seek requests work. Payload shape change: api_review gains an audio_mimetype key, so tests/baselines/api/speakers/review.json was regenerated via make update-api-baselines (not hand-edited). This is the one API-visible change. Owner/discovery samples now emit audio_url: null when a segment's audio has been purged (embeddings outlive audio), and the three <audio> renders omit the element rather than emitting src="None".