PCH finally working

Still some hacks left in the code, in particular the management of
namespaces is scketchy.
PCH cleanup

Cleanup of last CL which was using an ugly function static string to
track the last namespace.
Minor cleanup

Throw instead of debugbreak();
adding stringprintf

back to a more regular operation of just adding a catalog entry.

Happily the PCH changes are holding steady.
adding IOCPLoop

A message loop using IO completion ports.