[Fix] Store subtitle settings only on user action

This is a follow-up on PR https://github.com/xbmc/xbmc/pull/4921.
Video settings are now stored **only** on user actions.

Thanks @Voyager1 for your help!
not exactly. It's a catch-22 situation, because the Navigator will change the subs visibility "from behind", and you can't detect that at the g_application.m_pPlayer level. As I explained it creates a difference between the SETTING_SUBTITLE_ENABLE (which is correctly set to false after turning off the sub via the dvd menu), and the videoSettings.m_SubtitleOn value. As soon as entering CGUIDialogAudioSubtitleSettings::FrameMove() it will try to force it back to the value of videoSettings.m_SubtitleOn.

The solution can be to make sure that videoSettings.m_SubtitleOn is also correct as I suggested in this commit. 

Unfortunately, you need to use OnDVDNavResult for this.
Good news, no need to do this all the time. I have tested @elupus ' suggestion, i.e. only do this when outside of menu's to avoid incorrect setting changes.
```
        if (!pStream->IsInMenu())
          CMediaSettings::Get().GetCurrentVideoSettings().m_SubtitleOn = visible;
```
This works fine too.