[RDY] cleanup environment variable handling + unit tests

This removes a putenv() implementation which isn't needed anymore.
Some places called getenv() and setenv() directly, which are now replaced with mch_getenv()/mch_setenv().

While doing this I noticed that the vim_getenv did some special handling for windows, but this got deleted with the initial import (original code: https://code.google.com/p/vim/source/browse/src/misc1.c#4149).
This special handling should be implemented in mch_getenv() anyway.
As far as I know, libuv has no api for environment variable reading and writing, so I think we have to implement our own windows versions for mch_getenv()/mch_setenv().