std::string for program name and param list

Considering we have an std::vector<std::string> here, I guess there's no
problem in having std::strings as well.
Note both leaks were properly noted...
reduce warnings in Visual Studio

Push/pop warning state ignoring deprecated functions.
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!
Merge pull request #2 from MaxDZ8/bugfix-40-memory-leaks

Fix some more memory leaks by using string objects rather than C arrays where appropriate.
No more leaks on Windows, thanks to these changes contributed by Massimo Del Zotto.