maybe clearenv on windows

Windows requires a set of environment variables to function properly. This PR adds a whitelist of default environment variables that will get saved, and then preserved on Windows so that tests will work properly.

Without proper environment variables, standard packages such as "os" will sometimes fail, leading to packages failing because no temporary directory/file could be created.

ex on windows:
```Go
package main

import (
	"os"
	"fmt"
)

func main() {
	fmt.Printf("Tempdir: %s", os.TempDir())
	os.Clearenv()
	fmt.Printf("Tempdir after Clearenv(): %s", os.TempDir())
}
```
That is true, I opted to build a whitelist, in case we at some point need to make exceptions like this for other platforms. But the switch could be done in setEnviron() as well