Add benchmark arguments without leaking memory
The previous version of BenchmarkInSitu added arguments to its argv list
by using strdup
. However, this method will leak memory, which is not
great. Replace this with a safer mechanism that will properly delete
memory at the end of the program (and satisfy any memory analyzers).
This also fixes a warning from MS about strdup
being deprecated.