[RFC] Fix missing streams

Issue: sometimes when switching channels using the pvr.hts add-on certain streams "go missing". This usually manifests as a missing audio stream or missing video. I've pinpointed the problem to the UpdateStreams() method and have come up with this "fix" which @opdenkamp told me is not enough.

Apparently the code is supposed to update m_streams in-place when possible instead of simply clearing and redoing the array. The code assumes that a stream with the same physical ID is the same, which I assume works for the VNSI add-on since it uses the stream PID as physical ID, however, it doesn't make any sense for pvr.hts since it uses meaningless indexes as physical ID. Thus there is no guarantee that a stream with a certain physical ID is actually the same as another one with the same ID.

The code also moves the video stream first in the list without moving whatever is there away (as far as I can tell), which clearly is not right. It works fine as long as the video stream is at the first position in the newStreams vector (since nothing actually changes), but for channels where the video streams doesn't appear first something breaks.

Like I said I don't know exactly why the issue exists and why this drastically simplified approach fixes things, that's why I'd like some comments from you @opdenkamp  and @FernetMenta on how to fix this the right way.