Enforce read-only restrictions for plugin playlists (PluginID != "")
consistently across backend and UI, matching the existing smart playlist
behavior. The Subsonic buildOSPlaylist now uses IsReadOnly() to mark both
smart and plugin playlists as readonly. Backend Update and REST adapter
block name/comment changes on plugin playlists while still allowing
public toggle and cover art. The UI adds isPluginPlaylist helper to
canChangeTracks, disables name/comment inputs in PlaylistEdit, disables
auto-import toggle in PlaylistList, and adds a server-side readonly
filter to exclude both smart and plugin playlists from the "add to
playlist" dialog.