urisourcebin: Handle legacy pad replacements from parsebin
When dealing with demuxers which aren't streams-aware, we need to handle the
old-school "stream replacement" dance from parsebin
and hide that in such a
way that output pads are re-used (if compatible).
By analyzing the collection posted by parsebin, we can:
- Identify whether some output slots are no longer used (because the stream they currently handle is not present in the collection)
- Decide if some upcoming streams could re-use the existing slot
This supports both buffering and non-buffering modes.
Fixes #1651 (closed)