[pvr] fix deviations of selected item between PVR windows and channel OSD

As discussed in our forum (http://forum.xbmc.org/showthread.php?tid=175135&pid=1795411#pid1795411) this fix the deviations of the selected item between the PVR windows and the channel osd.

I also changed the way the current playing channel is used for the selected item. It's only used if we never have valid selected item or if we switch the channel otherwise we use the stored selected item. Thanks Jönke for this suggestion.
Can member variables be used in static methods? In most languages I've worked with that's not possible (similar to using `this`).