OutputDebugStringF code cleanup

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.
Merge remote-tracking branch 'upstream-pull/2060/head' into turbo
Merge remote-tracking branch 'upstream-pull/2061/head' into turbo
Merge remote-tracking branch 'upstream-pull/2099/head' into turbo
Merge remote-tracking branch 'upstream-pull/2106/head' into turbo
Merge remote-tracking branch 'upstream-pull/2114/head' into turbo
Merge remote-tracking branch 'upstream-pull/2115/head' into turbo
Merge remote-tracking branch 'upstream-pull/2120/head' into turbo
Merge remote-tracking branch 'upstream-pull/2142/head' into turbo
Merge remote-tracking branch 'upstream-pull/2145/head' into turbo