Enhances ICY metadata streaming to include cover artwork URLs, enabling
media players to display album art while streaming.
Changes:
- Add cover_pk field to MetadataSnapshot (cache primary key)
- Extract cover_pk in update_metadata() alongside cover_url
- Format ICY metadata with StreamUrl field pointing to cover image:
* If cover_pk exists: /covers/image/{pk}/256 (local cache, 256px)
* Fallback to cover_url if no local cache (external URL)
- Use relative URLs for compatibility with same-origin streaming
ICY format example:
StreamTitle='AC/DC - Highway to Hell';StreamUrl='/covers/image/abc123/256';
This works seamlessly with pmocovers which serves images at:
GET /covers/image/{pk} - Original WebP
GET /covers/image/{pk}/256 - 256px variant (used in ICY)
Relative URLs are resolved correctly by VLC and other ICY-compatible players
when streaming from the same server that serves covers.