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.
Don't ignore possible extensions when localizing object names
Merge pull request #350 from Mystler/loc_fix

Fix loading localized sound files
Fix NetCliAuthFileRequest Regression introduced by 6e56447

Our data fields have to be the same as their size on the wire. Ugh.
Merge pull request #351 from Hoikas/fix-regression

Fix NetCliAuthFileRequest Regression
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!
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.
Merge pull request #355 from Deledrius/c11_regex

Use std::regex instead of PCRE.
Fix out-of-bounds crash when fiddling with NPCs
Merge pull request #359 from Mystler/crashfix

Fix out of bounds crash in GetNPC()
Required link libraries for pnNetCommon.

Allows it to build and link properly under gcc/clang.