auto merge of #9010 : aaronlaursen/rust/master, r=alexcrichton
auto merge of #9010 : aaronlaursen/rust/master, r=alexcrichton

Here's a fix for issue #7588, "Overflow handling of from_str methods is broken". 

The integer overflow issues are taken care of by checking to see if the multiply-by-radix-and-add-next-digit process is reversible. If it overflowed, then some information is lost and the process is irreversible, in which case, None is returned. 

Floats now consistently return Some(Inf) of Some(-Inf) on overflow thanks to a call to NumStrConv::inf() and NumStrConv::neg_inf() respectively when the overflow is detected (which yields a value of None in the case of ints and uints anyway). 

This is my first contribution to Rust, and my first time using the language in general, so any and all feedback is appreciated.

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