Async pyVaultPlayerInfoList::AddPlayer

This fixes the stutter when adding a buddy to the KI. The return value was
never used, according to grep. There is a delay between hitting enter and the player being added, but that's acceptable.
Fix crash when loading converted Age.
Merge pull request #347 from Deledrius/fanagecrashworkaround

Workaround crash when linking to converted fan Ages
Merge pull request #346 from Hoikas/async-sleep

Fix buddy-add stutter
Fix a VC++2013 compile error
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!
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.