Port lint.rs from oldvisit to <V:Visit> trait API.  Less mechanical port.
Port lint.rs from oldvisit to <V:Visit> trait API.  Less mechanical port.

That is, there was lots more hacking than the other more-mechanical
ports Felix did.

There's also a strange pattern that I hacked in to accommodate the
Outer/Inner traversal structure of the existing code (which was
previously encoding this by untying the Y-combinator style knot of the
vtable, and then retying it but superimposing new methods that "stop
at items").  I hope either I or someone else can come back in the
future and replace this ugliness with something more natural.

Added boilerplate macro; all the OuterLint definitions are the same
(but must be abstracted over implementing struct, thus the macro).

Revised lint.rs use declarations to make ast references explicit.
Also removed unused imports.

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