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 shutdown).
Showing with 76 additions and 61 deletions