Support playlists using UTF8 encoding without BOM.

This commit fixes #3605.
Support for multiple programs in one IFO file.
SetupDVDChapters: Improve compatibility.

Double check if our parser returns correct data.
SetupDVDChapters: Various fix, cosmetics and clean-ups.

- Fix compilation
- Make the GetTitleInfo function static
- Use ULONG and CString for consistency
- Check that the program number seems valid.
CVobFile: Various cosmetics.
Update LAV Filters to 0.58.2-93-6f44791 (custom build based on 0.58.2-88-6d574b9)

Important changes:
 - Add support for HEVC and VP9.
 - Fix a potential crash in tray icon custom patch: double-clicking on LAV Video/Audio tray icon could lead to crash because of uninitialized pointers.

This commit fixes #3590.
Internal filters: VP9 can now be enabled/disable from option page.
Internal filters: HEVC can now be enabled/disable from option page.
Remove logically dead code.

Fixes CID #965942 #1109592.
Fix uninitialized scalar variable.

Fixes CID #966220 #966223.
Fix an incorrect sizeof.

Fixes CID #966192.
Check return value.

Fixes CID #1109591, #1084350
Fix uninitialized class members.

Fixes CID #966364, #966344, #966315, #966315, #966347, #966319, #966314,
 #966313, #966280
Fix the /W4 C4245 warnings: signed/unsigned mismatch.
AppSettings: Move some backward compatibility code to UpdateSettings()
Apply AStyle.
Remove duplicated code.

Fixes CID #965941.
Avoid useless conversion to CStringA.

Fixes CID #1111768.
CVobFile: Avoid hiding methods without overriding them.

Fixes CID #965828 #965829.
Check some return values when it makes sense to do so.

Fixes CID #965877 #1111761 #1111762 #1111764.