OutputDebugStringF code cleanup

There was a bunch of shed-painting about this before the 0.7.1 release, and I promised to tidy up the code, so:

Initialize the OutputDebugStringF mutex and file pointer using boost::call_once, to be thread-safe.

Make the return value of OutputDebugStringF really be the number of characters written (*printf() semantics).

Declare the fReopenDebugLog flag volatile, since it is changed from a signal handler.

And don't declare OutputDebugStringF() as inline.