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())
}
```
I think (and I might very well be mistaken, if so I apologise) that you are being redundant here, ```buildWhitelistEnv``` is not actually required since maybleClearEnv could do()
```go
s.setEnviron()
``` 
and ```setEnviron``` could be as follows (sorry syntax not tested):
```go
func (s *OsEnvSuite) setEnviron() {
        for _, envVar := range windowsVariables {
                if value, ok := s.oldEnvironment[envVar]; ok {
                         os.SetEnv(envVar, value)
                }
        }
}
```