Fix the "invalid input to string_format function!" message

There have been reports of debug message "invalid input to string_format function!". It comes from output.cpp, function `vstring_format`. It should *only* appear on linux/posix platforms. On windows the `#ifdef _MSC_VER` should activate another code path that does not print such a message.

I was able able to reproduce the debug message with a windows (curse) build, running with wine by viewing the book "The Handloader's Helper" in the wish menu. I scrolled through all the items, but no other item produced that message.

I tested this further by adding all recipes that are booked to another book (simple replacement: `"book_learn": [` => `"book_learn": [ ["mag_porn",0],`). Viewing that book in the wish menu produced the same debug message. I assume it's because the buffer to `vsnprintf` is too small in these circumstances.

Now the windows build is apparently created with mingw. My guess is that mingw does not define _MSC_VER and therefor uses the posix code path. But it uses the windows version of `vsnprintf`, which returns -1 on buffer overflow. The posix version returns the required size of the buffer and -1 in case of an formatting error.

So the program assumes that it has a posix `vsnprintf` function (as `_MSC_VER` is not defined) and assumes that a -1 return value indicates a formatting error and prints said message.

I changed the macro to use defined `(_WIN32 || defined WINDOWS)` which is used (successfully) in other places of the code.