#2837 Startup Slowdown when config in ini vs. config in reg

To continue the discussion on [#2837](https://trac.mpc-hc.org/ticket/2837).

GetPrivateProfileSection() turned out to have severe limitations, thus a full parser.

Didn't find a way to bulk read the registry, no changes there.

This should bring .ini startup times on par with the registry ones.

Should break no external things, but further testing/insight is needed.

* To be done:
- [ ] Investigate if CAppSettings::SaveExternalFilters() can use GetIntFromCfgCache()
- [ ] Dig into GetProfileBinary() encoding format and write GetBinaryFromCfgCache() with the decoder
- [ ] Implement FlushCfgCache(), WriteIntToCfgCache(), WriteStringToCfgCache(), WriteBinaryToCfgCache()