really don't cache environment variables

As of c67941 "don't cache environment variables, fix non-ASCII environment
variables", git-cheetah fails to show context menu items unless the git
installation directory is in the PATH.

This is due to mingw_spawnvpe_cwd using getenv("PATH") internally, which is
the state of the PATH variable as cached by MSVCRT on startup.

To allow for environment changes in the hosting exporer process, we shall
not use any cached variant of the environment.

Reimplement mingw_getenv to access the Win32 environment directly (instead
of MSVCRT's cached version).

Update fork_process to use the improved non-caching getenv instead of the
more complex Win32 function.

Also add a minimal setenv implementation and use it in fork_process, so
that we don't mix POSIX and Win32 APIs.

Reported-by: Peter Oberndorfer <kumbayo84@gmail.com>
Signed-off-by: Karsten Blees <blees@dcon.de>