WithEnvVar sets the env variable to the given environment variable and returns a function to revert.
If the value is empty, the environment variable will be unset.
WithVar sets the given var to the src value and returns a function to revert to the original state.
The type of `dst` has to be a settable pointer.
The value of `src` has to be assignable to the type of `dst`.
WithVars sets the given vars to the given values and returns a function to revert back.
dstsAndSrcs have to appear in pairs of 2, otherwise there will be a runtime panic.