playlist: Simplify dynamic playlist tracking of other playlists.
We store pointers to other Playlist entries to ensure we can update
their playing item state (which in the old JuK was a 'playback arrow'
icon that would show up in the row for playing items). The idea being
that there would be an entry in the Play Queue showing that an item was
playing but also the same source item in the source playlist would also
indicate that it was playing.
This has been susceptible to all the normal frailties of storing
pointers to objects whose lifetime is unpredictable. By using guarded
pointers we can at least hopefully avoid crashing (especially on