net: make windows (*netFD).connect work like its unix version
net: make windows (*netFD).connect work like its unix version

CL 17821 used syscall.CancelIoEx to cancel outstanding connect
call, but did not check for syscall.CancelIoEx return value.
Also I am worried about introducing race here. We should use
proper tools available for us instead. For example, we could
use fd.setWriteDeadline just like unix version does. Do that.

Change-Id: Idb9a03c8c249278ce3e2a4c49cc32445d4c7b065
Reviewed-on: https://go-review.googlesource.com/17920
Reviewed-by: Brad Fitzpatrick <ae9783c0b0efc69cd85ab025ddd17aa44cdc4aa5@golang.org>
Run-TryBot: Brad Fitzpatrick <ae9783c0b0efc69cd85ab025ddd17aa44cdc4aa5@golang.org>
Run-TryBot: Alex Brainman <54ba58c8441b5eff861de6b4e5ee46baf086b142@gmail.com>

cloudflare/go,ganboing/go-esx,suncycheng/go,mwhudson/go,vanloswang/go,mwhudson/go,christopher-henderson/Go,vsekhar/elastic-go,nawawi/go,cyberroadie/go,vanloswang/go,theif519/go,ImJasonH/go,deft-code/go,josharian/go,miolini/go,polyverse-security/go,cloudflare/go,vanloswang/go,sndnvaps/go,4ad/go,Samurais/go,golang/go,Samurais/go,vanloswang/go,vsekhar/elastic-go,Endika/go,4ad/go,kim-racktop/go,goodlang/good,vsekhar/elastic-go,Endika/go,theif519/go,roth1002/go,polyverse-security/go,josharian/go,cloudflare/go,momchil-velikov/go,ganboing/go-esx,linux-on-ibm-z/go,suncycheng/go,vanloswang/go,akutz/go,cyberroadie/go,Samurais/go,codestation/go,kim-racktop/go,momchil-velikov/go,binarycrusader/go,suncycheng/go,4ad/go,derekmarcotte/go,theif519/go,ImJasonH/go,golang/go,polyverse-security/go,cyberroadie/go,golang/go,derekmarcotte/go,cloudflare/go,ImJasonH/go,Cofyc/go,goodlang/good,linux-on-ibm-z/go,cloudflare/go,Endika/go,Cofyc/go,golang/go,nawawi/go,4ad/go,theif519/go,kim-racktop/go,binarycrusader/go,suncycheng/go,vanloswang/go,vanloswang/go,goodlang/good,derekmarcotte/go,codestation/go,Cofyc/go,sndnvaps/go,Endika/go,vsekhar/elastic-go,Cofyc/go,linux-on-ibm-z/go,sndnvaps/go,miolini/go,CAFxX/go,codestation/go,binarycrusader/go,Cofyc/go,akutz/go,suncycheng/go,CAFxX/go,deft-code/go,golang/go,ganboing/go-esx,derekmarcotte/go,josharian/go,josharian/go,momchil-velikov/go,ganboing/go-esx,kim-racktop/go,roth1002/go,mwhudson/go,codestation/go,binarycrusader/go,akutz/go,ganboing/go-esx,kim-racktop/go,CAFxX/go,vsekhar/elastic-go,polyverse-security/go,Cofyc/go,mwhudson/go,cloudflare/go,CAFxX/go,linux-on-ibm-z/go,deft-code/go,deft-code/go,deft-code/go,nawawi/go,roth1002/go,miolini/go,cyberroadie/go,akutz/go,momchil-velikov/go,goodlang/good,binarycrusader/go,4ad/go,binarycrusader/go,Samurais/go,ImJasonH/go,kim-racktop/go,polyverse-security/go,linux-on-ibm-z/go,suncycheng/go,Endika/go,miolini/go,derekmarcotte/go,polyverse-security/go,CAFxX/go,nawawi/go,roth1002/go,theif519/go,Cofyc/go,nawawi/go,ganboing/go-esx,vanloswang/go,polyverse-security/go,binarycrusader/go,roth1002/go,codestation/go,josharian/go,goodlang/good,vsekhar/elastic-go,roth1002/go,codestation/go,derekmarcotte/go,golang/go,vsekhar/elastic-go,CAFxX/go,suncycheng/go,cloudflare/go,ImJasonH/go,sndnvaps/go,Endika/go,golang/go,theif519/go,josharian/go,goodlang/good,cyberroadie/go,deft-code/go,akutz/go,sndnvaps/go,theif519/go,cyberroadie/go,ganboing/go-esx,mwhudson/go,miolini/go,derekmarcotte/go,ganboing/go-esx,Endika/go,derekmarcotte/go,vsekhar/elastic-go,miolini/go,linux-on-ibm-z/go,akutz/go,momchil-velikov/go,miolini/go,miolini/go,Samurais/go,nawawi/go,4ad/go,CAFxX/go,codestation/go,linux-on-ibm-z/go,golang/go,ImJasonH/go,ImJasonH/go,ImJasonH/go,akutz/go,josharian/go,deft-code/go,mwhudson/go,momchil-velikov/go,deft-code/go,cyberroadie/go,suncycheng/go,Endika/go,nawawi/go,polyverse-security/go,cyberroadie/go,Samurais/go,roth1002/go,josharian/go,goodlang/good,momchil-velikov/go,cloudflare/go,kim-racktop/go,4ad/go,theif519/go,Cofyc/go,4ad/go,akutz/go,Samurais/go,momchil-velikov/go,sndnvaps/go,kim-racktop/go,sndnvaps/go,CAFxX/go,goodlang/good,mwhudson/go,sndnvaps/go,roth1002/go,mwhudson/go,linux-on-ibm-z/go,codestation/go,Samurais/go,binarycrusader/go,nawawi/go