refactoring xbmc_stream_utils.hpp completely in order to fix
a bunch of outstanding issues.

Instead of operating directly on the PVR_STREAM_PROPERTIES
struct and keeping track of the indexes with a map, we instead
only operate on a vector of streams and "convert" those to a
PVR_STREAM_PROPERTIES struct only when one is requested in
GetProperties().

Fixes at least the following:

- use proper copy/assignment constructors so that e.g. audio
stream language is correctly copied
- reliable sort streams in order to make the video appear
first. This was somehow broken in the old code which could
cause audio or video streams to go missing when switching
channels.
- look at both ID and codec when determining if two streams
are the same. Tvheadend doesn't use unique IDs like VDR so
the old approach was broken.
- hypothetical situations where the video stream would go
missing if the addon reported more than 20 other streams
before it.
reuse GetStreamId() so we can get rid of one operator overload
always copy existing streams, otherwise stream property changes
like language won't propagate
don't ignore TEXTSUB streams
[pvr.hts] only add subtitle stream identifier for DVB subtitles
fix some compiler warnings
Merge pull request #251 from Jalle19/fix-compiler-warnings

Fix most compiler warnings
Merge pull request #255 from Jalle19/fix-missing-teletext-subs

Fix missing teletext subtitles
Merge pull request #239 from Jalle19/fix-missing-streams

[RFC] Fix missing streams