auto merge of #17459 : dradtke/rust/master, r=brson
auto merge of #17459 : dradtke/rust/master, r=brson

This PR adds a new Vim compiler file specifically for use with Cargo. It passes all arguments through, so commands like `:make build`, `:make clean`, and `:make run` all work as expected.

It also adds a quickfix autocommand for fixing the paths before populating the error list. `cargo build` reports errors with file paths that are relative to Cargo.toml, so if you're further down in the project tree, then trying to open the error will result in a blank buffer because Vim treats that path as relative to the working directory instead. With this fix, the paths work properly no matter where you are in the project.

pelmers/rust,XMPPwocky/rust,kwantam/rust,barosl/rust,reem/rust,ruud-v-a/rust,jroesch/rust,robertg/rust,andars/rust,mvdnes/rust,zubron/rust,dwillmer/rust,sae-bom/rust,mvdnes/rust,defuz/rust,carols10cents/rust,kimroen/rust,robertg/rust,defuz/rust,P1start/rust,dinfuehr/rust,zaeleus/rust,mihneadb/rust,jroesch/rust,gifnksm/rust,vhbit/rust,GBGamer/rust,dinfuehr/rust,sae-bom/rust,mahkoh/rust,GBGamer/rust,avdi/rust,sae-bom/rust,GBGamer/rust,aidancully/rust,cllns/rust,krzysz00/rust,KokaKiwi/rust,nwin/rust,kimroen/rust,andars/rust,rohitjoshi/rust,graydon/rust,0x73/rust,P1start/rust,l0kod/rust,vhbit/rust,aepsil0n/rust,ejjeong/rust,KokaKiwi/rust,krzysz00/rust,mihneadb/rust,hauleth/rust,pshc/rust,pshc/rust,aidancully/rust,richo/rust,rprichard/rust,0x73/rust,dinfuehr/rust,graydon/rust,P1start/rust,aneeshusa/rust,dwillmer/rust,richo/rust,mahkoh/rust,kimroen/rust,ejjeong/rust,KokaKiwi/rust,ebfull/rust,XMPPwocky/rust,zachwick/rust,zaeleus/rust,zachwick/rust,victorvde/rust,zaeleus/rust,richo/rust,reem/rust,philyoon/rust,bombless/rust,mahkoh/rust,rprichard/rust,rprichard/rust,victorvde/rust,dwillmer/rust,aidancully/rust,untitaker/rust,omasanori/rust,seanrivera/rust,XMPPwocky/rust,bombless/rust,mvdnes/rust,0x73/rust,rohitjoshi/rust,avdi/rust,ejjeong/rust,omasanori/rust,AerialX/rust-rt-minimal,rprichard/rust,gifnksm/rust,KokaKiwi/rust,cllns/rust,aidancully/rust,aneeshusa/rust,aneeshusa/rust,cllns/rust,robertg/rust,ejjeong/rust,rprichard/rust,victorvde/rust,TheNeikos/rust,ktossell/rust,avdi/rust,vhbit/rust,aepsil0n/rust,andars/rust,AerialX/rust,miniupnp/rust,graydon/rust,AerialX/rust-rt-minimal,ebfull/rust,omasanori/rust,ktossell/rust,aepsil0n/rust,graydon/rust,TheNeikos/rust,mdinger/rust,0x73/rust,zachwick/rust,pelmers/rust,emk/rust,gifnksm/rust,dwillmer/rust,ruud-v-a/rust,philyoon/rust,carols10cents/rust,AerialX/rust,ruud-v-a/rust,aidancully/rust,avdi/rust,pelmers/rust,zachwick/rust,nwin/rust,rohitjoshi/rust,P1start/rust,philyoon/rust,cllns/rust,ruud-v-a/rust,pelmers/rust,quornian/rust,avdi/rust,jroesch/rust,emk/rust,aneeshusa/rust,mdinger/rust,kimroen/rust,richo/rust,barosl/rust,victorvde/rust,kwantam/rust,ebfull/rust,0x73/rust,mahkoh/rust,ktossell/rust,P1start/rust,seanrivera/rust,quornian/rust,hauleth/rust,kwantam/rust,omasanori/rust,jashank/rust,ktossell/rust,bombless/rust,philyoon/rust,kwantam/rust,ktossell/rust,AerialX/rust-rt-minimal,dinfuehr/rust,carols10cents/rust,aepsil0n/rust,GBGamer/rust,victorvde/rust,untitaker/rust,hauleth/rust,bombless/rust-docs-chinese,mdinger/rust,untitaker/rust,zubron/rust,TheNeikos/rust,zubron/rust,kimroen/rust,dwillmer/rust,kwantam/rust,mihneadb/rust,emk/rust,zubron/rust,reem/rust,GBGamer/rust,AerialX/rust,ejjeong/rust,aidancully/rust,ktossell/rust,reem/rust,jashank/rust,pshc/rust,zubron/rust,mahkoh/rust,quornian/rust,mdinger/rust,l0kod/rust,dinfuehr/rust,mdinger/rust,sae-bom/rust,jroesch/rust,hauleth/rust,jashank/rust,emk/rust,defuz/rust,untitaker/rust,pshc/rust,dinfuehr/rust,P1start/rust,miniupnp/rust,aepsil0n/rust,pshc/rust,philyoon/rust,AerialX/rust,AerialX/rust-rt-minimal,richo/rust,nwin/rust,andars/rust,AerialX/rust,jroesch/rust,nwin/rust,barosl/rust,pshc/rust,mvdnes/rust,bombless/rust,seanrivera/rust,zubron/rust,andars/rust,mahkoh/rust,ejjeong/rust,miniupnp/rust,vhbit/rust,cllns/rust,carols10cents/rust,rohitjoshi/rust,andars/rust,jroesch/rust,nwin/rust,graydon/rust,KokaKiwi/rust,0x73/rust,nwin/rust,nwin/rust,emk/rust,rohitjoshi/rust,kimroen/rust,gifnksm/rust,krzysz00/rust,gifnksm/rust,l0kod/rust,l0kod/rust,aepsil0n/rust,zubron/rust,vhbit/rust,zaeleus/rust,carols10cents/rust,GBGamer/rust,dwillmer/rust,zaeleus/rust,sae-bom/rust,bombless/rust,zachwick/rust,krzysz00/rust,defuz/rust,aneeshusa/rust,ktossell/rust,jroesch/rust,ebfull/rust,quornian/rust,omasanori/rust,seanrivera/rust,bombless/rust,XMPPwocky/rust,cllns/rust,barosl/rust,hauleth/rust,zachwick/rust,reem/rust,rprichard/rust,victorvde/rust,pelmers/rust,jroesch/rust,seanrivera/rust,robertg/rust,jashank/rust,jashank/rust,XMPPwocky/rust,l0kod/rust,TheNeikos/rust,ruud-v-a/rust,GBGamer/rust,seanrivera/rust,reem/rust,miniupnp/rust,l0kod/rust,emk/rust,jashank/rust,carols10cents/rust,mihneadb/rust,defuz/rust,XMPPwocky/rust,graydon/rust,barosl/rust,sae-bom/rust,ebfull/rust,AerialX/rust,ruud-v-a/rust,rohitjoshi/rust,robertg/rust,P1start/rust,hauleth/rust,krzysz00/rust,vhbit/rust,TheNeikos/rust,philyoon/rust,quornian/rust,mihneadb/rust,untitaker/rust,untitaker/rust,omasanori/rust,gifnksm/rust,jashank/rust,kimroen/rust,aneeshusa/rust,barosl/rust,mvdnes/rust,0x73/rust,richo/rust,nwin/rust,quornian/rust,AerialX/rust-rt-minimal,zaeleus/rust,pshc/rust,l0kod/rust,jashank/rust,mvdnes/rust,miniupnp/rust,kwantam/rust,miniupnp/rust,krzysz00/rust,ebfull/rust,defuz/rust,mihneadb/rust,avdi/rust,GBGamer/rust,barosl/rust,dwillmer/rust,mdinger/rust,TheNeikos/rust,l0kod/rust,miniupnp/rust,vhbit/rust,quornian/rust,miniupnp/rust,dwillmer/rust,pshc/rust,robertg/rust,pelmers/rust,vhbit/rust,zubron/rust,KokaKiwi/rust,emk/rust,AerialX/rust-rt-minimal