Set uv's custom data before uv_read_start
Set uv's custom data before uv_read_start

This is a behavioral difference in libuv between different platforms in
different situations. It turns out that libuv on windows will immediately
allocate a buffer instead of waiting for data to be ready. What this implies is
that we must have our custom data set on the handle before we call
uv_read_start.

I wish I knew of a way to test this, but this relies to being on the windows
platform *and* reading from a true TTY handle which only happens when this is
actually attached to a terminal. I have manually verified this works.

Closes #10645

pshc/rust,nham/rust,aidancully/rust,rprichard/rust,GBGamer/rust,victorvde/rust,barosl/rust,GrahamDennis/rand,aneeshusa/rust,kimroen/rust,dinfuehr/rust,l0kod/rust,rohitjoshi/rust,zubron/rust,nwin/rust,kimroen/rust,pczarn/rust,stepancheg/rust-ide-rust,hauleth/rust,rprichard/rust,robertg/rust,miniupnp/rust,pelmers/rust,defuz/rust,miniupnp/rust,pshc/rust,seanrivera/rust,richo/rust,pythonesque/rust,AerialX/rust-rt-minimal,mvdnes/rust,cllns/rust,omasanori/rust,andars/rust,untitaker/rust,barosl/rust,kwantam/rust,0x73/rust,TheNeikos/rust,fabricedesre/rust,ruud-v-a/rust,richo/rust,bombless/rust,aturon/rust,jashank/rust,miniupnp/rust,gifnksm/rust,rohitjoshi/rust,rprichard/rust,AerialX/rust,GBGamer/rust,graydon/rust,omasanori/rust,krzysz00/rust,sae-bom/rust,SiegeLord/rust,mdinger/rust,defuz/rust,aepsil0n/rust,stepancheg/rust-ide-rust,jashank/rust,zubron/rust,ebfull/rust,pczarn/rust,Ryman/rust,XMPPwocky/rust,zachwick/rust,pczarn/rust,fabricedesre/rust,aturon/rust,mihneadb/rust,bombless/rust,emk/rust,miniupnp/rust,AerialX/rust,zaeleus/rust,Ryman/rust,aneeshusa/rust,KokaKiwi/rust,omasanori/rust,ebfull/rust,pythonesque/rust,hauleth/rust,nham/rust,vhbit/rust,dwillmer/rust,ktossell/rust,mdinger/rust,pythonesque/rust,P1start/rust,defuz/rust,pelmers/rust,l0kod/rust,nham/rust,victorvde/rust,AerialX/rust,reem/rust,aturon/rust,arthurprs/rand,omasanori/rust,seanrivera/rust,mahkoh/rust,GBGamer/rust,emk/rust,michaelballantyne/rust-gpu,dinfuehr/rust,defuz/rust,mvdnes/rust,mitsuhiko/rust,GBGamer/rust,stepancheg/rust-ide-rust,mihneadb/rust,GBGamer/rust,kimroen/rust,mihneadb/rust,mitsuhiko/rust,erickt/rust,nham/rust,aneeshusa/rust,pczarn/rust,pshc/rust,reem/rust,ruud-v-a/rust,quornian/rust,pelmers/rust,rohitjoshi/rust,servo/rust,kimroen/rust,P1start/rust,l0kod/rust,KokaKiwi/rust,andars/rust,ejjeong/rust,bombless/rust,jbclements/rust,miniupnp/rust,erickt/rust,AerialX/rust,XMPPwocky/rust,mvdnes/rust,carols10cents/rust,erickt/rust,andars/rust,jashank/rust,seanrivera/rust,SiegeLord/rust,pczarn/rust,erickt/rust,avdi/rust,SiegeLord/rust,dwillmer/rust,kwantam/rust,mitsuhiko/rust,nwin/rust,emk/rust,krzysz00/rust,avdi/rust,dinfuehr/rust,avdi/rust,jbclements/rust,miniupnp/rust,ebfull/rust,cllns/rust,quornian/rust,stepancheg/rust-ide-rust,emk/rust,aturon/rust,kwantam/rust,pelmers/rust,untitaker/rust,jbclements/rust,michaelballantyne/rust-gpu,miniupnp/rust,P1start/rust,vhbit/rust,quornian/rust,cllns/rust,jroesch/rust,jroesch/rust,stepancheg/rust-ide-rust,hauleth/rust,Ryman/rust,barosl/rust,nwin/rust,AerialX/rust-rt-minimal,AerialX/rust-rt-minimal,omasanori/rust,aepsil0n/rust,TheNeikos/rust,jashank/rust,ejjeong/rust,pshc/rust,carols10cents/rust,mahkoh/rust,untitaker/rust,servo/rust,XMPPwocky/rust,bombless/rust,aidancully/rust,emk/rust,carols10cents/rust,jroesch/rust,dwillmer/rust,ktossell/rust,ejjeong/rust,jroesch/rust,dinfuehr/rust,kimroen/rust,ruud-v-a/rust,l0kod/rust,GBGamer/rust,ruud-v-a/rust,graydon/rust,AerialX/rust,aneeshusa/rust,mdinger/rust,andars/rust,rprichard/rust,l0kod/rust,defuz/rust,zubron/rust,ebfull/rust,nwin/rust,fabricedesre/rust,quornian/rust,robertg/rust,philyoon/rust,cllns/rust,P1start/rust,SiegeLord/rust,avdi/rust,nham/rust,dinfuehr/rust,pelmers/rust,gifnksm/rust,victorvde/rust,vhbit/rust,Ryman/rust,jbclements/rust,mihneadb/rust,defuz/rust,l0kod/rust,mahkoh/rust,aidancully/rust,miniupnp/rust,aidancully/rust,TheNeikos/rust,aepsil0n/rust,fabricedesre/rust,philyoon/rust,pczarn/rust,vhbit/rust,jashank/rust,bombless/rust-docs-chinese,victorvde/rust,GBGamer/rust,sae-bom/rust,waynenilsen/rand,servo/rust,mahkoh/rust,sae-bom/rust,KokaKiwi/rust,robertg/rust,zaeleus/rust,aepsil0n/rust,emk/rust,KokaKiwi/rust,gifnksm/rust,richo/rust,huonw/rand,ruud-v-a/rust,avdi/rust,philyoon/rust,aidancully/rust,ejjeong/rust,shepmaster/rand,rohitjoshi/rust,krzysz00/rust,andars/rust,kwantam/rust,untitaker/rust,AerialX/rust,mitsuhiko/rust,zubron/rust,0x73/rust,vhbit/rust,sae-bom/rust,Ryman/rust,aturon/rust,ejjeong/rust,pshc/rust,SiegeLord/rust,bhickey/rand,jroesch/rust,pelmers/rust,graydon/rust,fabricedesre/rust,dwillmer/rust,0x73/rust,AerialX/rust-rt-minimal,bluss/rand,reem/rust,TheNeikos/rust,mdinger/rust,krzysz00/rust,jbclements/rust,XMPPwocky/rust,hauleth/rust,kwantam/rust,michaelballantyne/rust-gpu,jbclements/rust,kimroen/rust,erickt/rust,richo/rust,victorvde/rust,jbclements/rust,0x73/rust,pshc/rust,nwin/rust,mdinger/rust,erickt/rust,rprichard/rust,rprichard/rust,zachwick/rust,andars/rust,reem/rust,quornian/rust,zaeleus/rust,ktossell/rust,pshc/rust,XMPPwocky/rust,robertg/rust,barosl/rust,cllns/rust,jroesch/rust,nwin/rust,graydon/rust,barosl/rust,quornian/rust,carols10cents/rust,robertg/rust,mitsuhiko/rust,michaelballantyne/rust-gpu,kimroen/rust,mihneadb/rust,TheNeikos/rust,jbclements/rust,aneeshusa/rust,hauleth/rust,zaeleus/rust,vhbit/rust,zaeleus/rust,KokaKiwi/rust,philyoon/rust,michaelballantyne/rust-gpu,hauleth/rust,stepancheg/rust-ide-rust,michaelballantyne/rust-gpu,nham/rust,zachwick/rust,avdi/rust,servo/rust,nham/rust,KokaKiwi/rust,AerialX/rust-rt-minimal,dwillmer/rust,rohitjoshi/rust,seanrivera/rust,dwillmer/rust,mvdnes/rust,TheNeikos/rust,0x73/rust,Ryman/rust,jroesch/rust,ruud-v-a/rust,ktossell/rust,mahkoh/rust,seanrivera/rust,gifnksm/rust,untitaker/rust,ebfull/rust,jashank/rust,achanda/rand,victorvde/rust,pshc/rust,krzysz00/rust,sae-bom/rust,gifnksm/rust,richo/rust,pczarn/rust,bombless/rust,vhbit/rust,jashank/rust,mvdnes/rust,gifnksm/rust,kwantam/rust,aepsil0n/rust,bombless/rust,XMPPwocky/rust,servo/rust,aturon/rust,krzysz00/rust,mitsuhiko/rust,dinfuehr/rust,mvdnes/rust,dwillmer/rust,mdinger/rust,l0kod/rust,omasanori/rust,zaeleus/rust,quornian/rust,vhbit/rust,nwin/rust,cllns/rust,AerialX/rust-rt-minimal,P1start/rust,SiegeLord/rust,0x73/rust,l0kod/rust,seanrivera/rust,P1start/rust,aepsil0n/rust,aturon/rust,sae-bom/rust,barosl/rust,pythonesque/rust,philyoon/rust,jroesch/rust,0x73/rust,zubron/rust,reem/rust,mitsuhiko/rust,emk/rust,zubron/rust,mihneadb/rust,retep998/rand,zachwick/rust,stepancheg/rust-ide-rust,nwin/rust,rohitjoshi/rust,mahkoh/rust,servo/rust,zachwick/rust,dwillmer/rust,Ryman/rust,ktossell/rust,aneeshusa/rust,pythonesque/rust,ktossell/rust,ebfull/rust,ejjeong/rust,fabricedesre/rust,erickt/rust,reem/rust,pythonesque/rust,aidancully/rust,untitaker/rust,ktossell/rust,servo/rust,jashank/rust,robertg/rust,fabricedesre/rust,GBGamer/rust,P1start/rust,ebfull/rand,richo/rust,zubron/rust,michaelballantyne/rust-gpu,carols10cents/rust,philyoon/rust,graydon/rust,pythonesque/rust,barosl/rust,jbclements/rust,graydon/rust,carols10cents/rust,zubron/rust,SiegeLord/rust,zachwick/rust