Task T8 evidence — song/sermon background layer

RED:
- `ddev exec php artisan test tests/Feature/ProFileExportTest.php`
- Failed as expected before implementation:
  - song slides had no BACKGROUND media action
  - slides table had no `cover_mode` column for full-cover detection

GREEN:
- `ddev exec php artisan test tests/Feature/ProFileExportTest.php`
- 13 passed, 76 assertions
- Verified:
  - every song text slide gets BACKGROUND media when ServiceImageResolver resolves a background
  - sermon image slides get BACKGROUND media when not full-cover
  - full-cover sermon image slides (`cover_mode=true`) skip BACKGROUND media
  - final .proplaylist export preserves the same sermon/full-cover behavior

Full suite:
- `ddev exec ./vendor/bin/pint ... && ddev exec php artisan test`
- 537 passed, 2683 assertions
