Clean up Windows process waiting
Clean up Windows process waiting

I think there are a couple of problems with recent changes to `ponyint_win_process_wait`.

Changing the timeout value to 0 means that `WaitForSingleObject` won't block, so we can't close the handle in that case.  Also 0x80 is the return code `WAIT_ABANDONED` which doesn't apply to processes.  We should be checking for `WAIT_TIMEOUT` (0x102) which means the process hasn't exited yet.  Also we need to make sure that retval is not 0 or 1 in an error case where `GetLastError()` returns 0 for some reason.

dipinhora/ponyc,ponylang/ponyc,jemc/ponyc,dipinhora/ponyc,jemc/ponyc,ponylang/ponyc,sgebbie/ponyc,sgebbie/ponyc,dipinhora/ponyc,ponylang/ponyc,jemc/ponyc,sgebbie/ponyc,sgebbie/ponyc,sgebbie/ponyc