auto merge of #12314 : huonw/rust/is_utf8_iter, r=kballard
auto merge of #12314 : huonw/rust/is_utf8_iter, r=kballard

See the commit messages for more details, but this makes `std::str::is_utf8` slightly faster and 100% non-`unsafe` and uses a similar thing to make the first scan of `from_utf8_lossy` 100% safe & faster.

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