Handle the environment variable being changed out from under the reading...

... thread.

This came as a response to https://github.com/bnoordhuis having concerns of a race condition between one thread changing the env data out from under another.

This solves the case of uninitialized data but is it enough?  Should the GetEnvironmentVariable call be looped on until it returns either 0 (no value) or a valid value < size (success)?