windows: Read the PATH env var of the child

The unix and windows process implementations diverge in their behavior
when dealing with subprocesses that are spawned with a relative path.
With unix the *child's* PATH environment variable is read, whereas
with windows the *parent's* environment variable is read.

This commit brings the two implementation in line with respect to
their behavior of reading PATH by having both read the *child's* PATH
environment variable. This involves looking into the user-provided
environment on windows and extracting the PATH variable specifically
so it can be inspected later on.

I'll cc #122 here as well, although I ended up discovering that after
writing this. It appears that there's more to this than I originally
thought, but I figured I'd at least put this out there!

`alloc_path` is the variable storing the allocation, and `path` is just a pointer to something which is the actual path value (may or may not be an allocation). If `PATH` is found in `env` then `path` doesn't need to be free'd (it's in the middle of an allocation).