[pvr] fix toggle between previous and next channel

After #5400 where I changed the last watched update logic, the update to the channel's last watched property is not reflected to the right channel instance. This only happens if `UpdateLastWatched()` is called from `PerformChannelSwitch()`. This attempts to the fix the issue.

I also rewrite the method `GetLastPlayedChannel()` where we do an unnecessary persist of the current playing channel before we search for the last played one. Previously this was needed because we don't update the last watched of the current channel in `PerformChannelSwitch()`. now we do.

@Jalle19 or @opdenkamp please take a look.