Text subtitles: Improve the error message when the parsing fails.

Make the message clearer and display the line that caused the error.

Fixes #4428.
Text subtitles: Lower the priority of SAMI and USF for format detection.

SAMI is costly to rule out and both are quite uncommon.

This makes opening ASS/SSA files about 10% faster.
Text subtitles: Various minor optimizations and cosmetics.

Reorder a conditional for better performance, don't construct empty object to initialize them later, use correct character type...
Text subtitles: Avoid useless conversion from CStringW to CString.

Around 5% faster.
Text subtitles: Optimize GetInt and GetFloat.

Avoid creating empty string objects and useless conversions to lowercase.

Around 5% faster overall on a random test file.
Text subtitles: Optimize white space trimming.

Around 20% faster.
Text subtitles: Prefer wcstol/wcstod to swscanf_s for simple conversions.

wcstol/wcstod are 4 or 5 times faster than swscanf_s when parsing just one number.

Around 10% faster loading overall on my ASS test file.
Text subtitles: Much faster string tokenization.

Avoid reallocating the buffer.

Around 20% faster.
Text subtitles: Tokenize numerical values without string copy.

Around 25% faster parsing.
Accept loading more than one subtitle file at a time using drag-and-drop.
"Load subtitle" dialog: fix the filter and simplify the code.

It was mostly broken for Windows Vista+ but improve the filters while at it.
Add subtitle files to Windows recently opened files only when "keep the history" is enabled.
"Load subtitle" dialog: Allow loading more than one file at a time.
SSA/ASS subtitles: Don't skip the sign when parsing \fs tag.

Fixes #4536.

Thanks to v0lt.
CMPCPngImage: Clean-up the cached resource when exiting.

This makes the leak detector happy.
Subresync bar: Properly lock the subtitle provider when loading.

Fixes #4505.
Fix a possible crash with embedded subtitles when the subtitle queue is disabled.

Fixes #3930.