Refactored %? and %: string escapes into Cond and CondElse respectively
Created struct WinMsgBuf to hold global winmsg_* vars

This is moving toward (primarily) three things:
  - An abstraction for simplification
  - Easily passing context to various functions
  - Moving toward creating re-entrant, thread-safe functions
Began adding WinMsgBufContext; very rough refactoring to break ground

This commit does indeed add to the verbosity of functions like
MakeWinMsgEx---ignore that, as this will be mitigated by functions introduced in
future commits.