Unified Patcher (Part 1: In-Game)

This is the first step toward unifying all the game patching and having advanced features, such as VC++ runtime updating. This changeset includes a new, thread based patcher that takes the place of the old plResPatcher and pfSecurePreloader. There is now only one updating phase from the game client appearing to reaching the StartUp interface.

plUruLauncher and runtime updates will be done in another pull request. This one is big enough!