Audit v2 #15. System-playlist detail screens now expose a
"Regenerate" OutlinedButton next to Play + Shuffle when the playlist
is refreshable (every system variant except songs_like_artist —
mirrors Flutter's PlaylistRef.refreshable).
Plumbing:
* PlaylistsApi.refreshSystem(variant) → RefreshSystemResponse with
optional playlist_id (server rotates the uuid; null when library
can't seed a build).
* PlaylistsRepository.refreshSystemPlaylist returns the new id and
invalidates the list cache so home-row tiles point at the new uuid.
* PlaylistDetailViewModel.regenerate calls into the repo and emits
the new id on a Channel.
* Screen collects the channel and navController.navigate-with-popUpTo
replaces the current detail route, so the back stack doesn't hold
the now-404'd old uuid.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>