MSVC: add simple (v)snprintf implementation

`_snprintf` is **not** C99's `snprintf`!

This simple implementation, unlike `_snprintf`, always null-terminates and returns the expected return value (in most cases). Other C99 behaviors (like format specifiers) require adding a complete `snprintf` implementation. Do we want or need that?

The same applies to `vsnprintf` (aka `_vsnprintf`).