auto merge of #5314 : jld/rust/adt-simplification, r=pcwalton
auto merge of #5314 : jld/rust/adt-simplification, r=pcwalton

Struct and enum representations have some complicatedness that's no longer needed.  Now that everything's in one place and has access to anything we'd want to know about the type, flatten some of that out.  Slight changes to representations in some cases.

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