fix leak in Windows

_putenv_s, available on MS toolchain since VS2005 does not require a
buffer allocation. Older MS compilers get no love.
std::string for version_string

With this commit, unit tests execute with no leaks on Windows!