Auto merge of #24820 - bradking:fix-windows-process-spawn-command-line, r=alexcrichton
Auto merge of #24820 - bradking:fix-windows-process-spawn-command-line, r=alexcrichton

Fix `make_command_line` for the case of backslashes at the end of an
argument requiring quotes.  We must encode the command and arguments
such that `CommandLineToArgvW` recovers them in the spawned process.
Simplify the logic by using a running count of backslashes as they
are encountered instead of looking ahead for quotes following them.

Extend `test_make_command_line` to additionally cover:

* a leading quote in an argument that requires quotes,
* a backslash before a quote in an argument that requires quotes,
* a backslash at the end of an argument that requires quotes, and
* a backslash at the end of an argument that does not require quotes.

KokaKiwi/rust,nwin/rust,pelmers/rust,jroesch/rust,sae-bom/rust,philyoon/rust,sae-bom/rust,l0kod/rust,mdinger/rust,dwillmer/rust,KokaKiwi/rust,gifnksm/rust,TheNeikos/rust,seanrivera/rust,nwin/rust,aneeshusa/rust,ejjeong/rust,nwin/rust,cllns/rust,vhbit/rust,jashank/rust,zubron/rust,TheNeikos/rust,l0kod/rust,vhbit/rust,XMPPwocky/rust,mvdnes/rust,dwillmer/rust,pshc/rust,GBGamer/rust,reem/rust,KokaKiwi/rust,mdinger/rust,kwantam/rust,aneeshusa/rust,kwantam/rust,jashank/rust,aidancully/rust,ejjeong/rust,dwillmer/rust,omasanori/rust,GBGamer/rust,zubron/rust,vhbit/rust,aepsil0n/rust,ejjeong/rust,aneeshusa/rust,l0kod/rust,mvdnes/rust,aidancully/rust,GBGamer/rust,graydon/rust,pshc/rust,GBGamer/rust,pelmers/rust,graydon/rust,aepsil0n/rust,mvdnes/rust,carols10cents/rust,graydon/rust,robertg/rust,jroesch/rust,gifnksm/rust,dwillmer/rust,krzysz00/rust,philyoon/rust,GBGamer/rust,mdinger/rust,graydon/rust,pshc/rust,robertg/rust,gifnksm/rust,krzysz00/rust,cllns/rust,jashank/rust,zachwick/rust,mihneadb/rust,zachwick/rust,robertg/rust,kwantam/rust,krzysz00/rust,pshc/rust,vhbit/rust,jashank/rust,zubron/rust,sae-bom/rust,TheNeikos/rust,KokaKiwi/rust,TheNeikos/rust,victorvde/rust,seanrivera/rust,rohitjoshi/rust,gifnksm/rust,carols10cents/rust,kwantam/rust,victorvde/rust,omasanori/rust,mihneadb/rust,GBGamer/rust,XMPPwocky/rust,zubron/rust,TheNeikos/rust,omasanori/rust,omasanori/rust,nwin/rust,seanrivera/rust,zachwick/rust,l0kod/rust,XMPPwocky/rust,KokaKiwi/rust,krzysz00/rust,victorvde/rust,GBGamer/rust,aidancully/rust,mihneadb/rust,dwillmer/rust,nwin/rust,nwin/rust,rohitjoshi/rust,pelmers/rust,cllns/rust,jroesch/rust,andars/rust,jroesch/rust,reem/rust,graydon/rust,aepsil0n/rust,mihneadb/rust,jashank/rust,omasanori/rust,robertg/rust,pelmers/rust,mdinger/rust,zachwick/rust,seanrivera/rust,mdinger/rust,robertg/rust,carols10cents/rust,rohitjoshi/rust,dwillmer/rust,XMPPwocky/rust,gifnksm/rust,vhbit/rust,seanrivera/rust,andars/rust,ejjeong/rust,reem/rust,carols10cents/rust,cllns/rust,cllns/rust,jashank/rust,omasanori/rust,KokaKiwi/rust,pshc/rust,carols10cents/rust,aneeshusa/rust,ejjeong/rust,kwantam/rust,sae-bom/rust,andars/rust,reem/rust,rohitjoshi/rust,TheNeikos/rust,mihneadb/rust,dwillmer/rust,sae-bom/rust,philyoon/rust,jashank/rust,andars/rust,pshc/rust,vhbit/rust,nwin/rust,jroesch/rust,victorvde/rust,mdinger/rust,reem/rust,cllns/rust,mvdnes/rust,victorvde/rust,ejjeong/rust,jashank/rust,aneeshusa/rust,pelmers/rust,kwantam/rust,vhbit/rust,zubron/rust,aneeshusa/rust,mvdnes/rust,carols10cents/rust,andars/rust,krzysz00/rust,vhbit/rust,l0kod/rust,zachwick/rust,aidancully/rust,XMPPwocky/rust,aepsil0n/rust,sae-bom/rust,rohitjoshi/rust,GBGamer/rust,zubron/rust,aepsil0n/rust,zubron/rust,pshc/rust,reem/rust,jroesch/rust,graydon/rust,gifnksm/rust,andars/rust,zachwick/rust,XMPPwocky/rust,philyoon/rust,jroesch/rust,zubron/rust,aepsil0n/rust,nwin/rust,mvdnes/rust,robertg/rust,aidancully/rust,dwillmer/rust,l0kod/rust,philyoon/rust,krzysz00/rust,victorvde/rust,philyoon/rust,aidancully/rust,rohitjoshi/rust,mihneadb/rust,pshc/rust,l0kod/rust,jroesch/rust,l0kod/rust,pelmers/rust,seanrivera/rust