auto merge of #14568 : erickt/rust/slice-update, r=alexcrichton
auto merge of #14568 : erickt/rust/slice-update, r=alexcrichton

This PR adds two features to make it possible to transform an `Iterator<u8>` into a `Reader`. The first patch adds a method to mutable slices that allows it to be updated with an `Iterator<T>` without paying for the bounds cost. The second adds a Iterator adaptor, `IterReader`, to provide that `Reader` interface.

I had two questions. First, are these named the right things? Second, should `IterReader` instead wrap an `Iterator<Result<u8, E>>`? This would allow you to `IterReader::new(rdr.bytes())`, which could be useful if you want to apply some iterator transformations on a reader while still exporting the Reader interface, but I'd expect there'd be a lot of overhead annotating each byte with an error result.

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