Port PtDebugPrint to C++

This has a couple of benefits:
- We should theoretically no longer run into UnicodeDecodeErrors from the
  plString-based implementation
- By doing things engine side, we can use the logging API to colorize log
  messages.
plString-ify plOperationProgress
Separate plOperationProgress titles and statuses.

Now we render titles above the progress bar and the status below (in the
same color as the progress bar!). Also, introduce a new info field that is
guaranteed to be right justified.
Implement pfPatcher backend
Reroute plResPatcher
Integrate SecurePreloader into pfPatcher
Update StartUp in initial batch

ONE PATCH! This commit brings us to half of the patching goal: on launch
of the client, we only show ONE "Updating..." message before we enter the
game proper. Go us!
Detect self-patching in pfPatcher
Merge pull request #349 from Hoikas/debug-print

Port PtDebugPrint to C++
Merge pull request #352 from Hoikas/patcher-thread

Unified Patcher (Part 1: In-Game)
Use std::regex instead of PCRE.
Fix plString ssize_t undefined errors.
Merge pull request #357 from dpogue/stringfix

Fix plString ssize_t undefined errors.
Fix broken plString format
Merge pull request #355 from Deledrius/c11_regex

Use std::regex instead of PCRE.
Fix out-of-bounds crash when fiddling with NPCs
We have to load plFontCache...
Silence unneeded assertion.
Fix #301

Partially reverts b9b72e0
Fix annoying "Bad static key ID" asserts