dropck: treat parametric types as safe for dropping.
dropck: treat parametric types as safe for dropping.

Handles e.g. `impl<T> Drop for Vec<T>` as parametric: If `T` does not
have any drop code that could read from borrowed data of lifetime `'a`,
then we infer that the drop code for `Vec<T>` also cannot read from
borrowed data of lifetime `'a`, and therefore we do not need to inject
the SafeDestructor constraint for it.

Notably, this enables us to continue storing cyclic structure, without
any `unsafe` code, in `Vec`, without allowing (unsound) destructors on
such cyclic data. (Later commits have tests illustrating these two
cases in run-pass and compile-fail, respectively.)

(This is "Condition (B.)" in Drop-Check rule described in RFC 769.)

dwillmer/rust,victorvde/rust,graydon/rust,TheNeikos/rust,zaeleus/rust,robertg/rust,jroesch/rust,nwin/rust,robertg/rust,aidancully/rust,seanrivera/rust,omasanori/rust,pshc/rust,aidancully/rust,seanrivera/rust,graydon/rust,mvdnes/rust,avdi/rust,pshc/rust,reem/rust,nwin/rust,bombless/rust,avdi/rust,aepsil0n/rust,nwin/rust,miniupnp/rust,l0kod/rust,omasanori/rust,GBGamer/rust,gifnksm/rust,hauleth/rust,jroesch/rust,dwillmer/rust,AerialX/rust,victorvde/rust,l0kod/rust,mihneadb/rust,dwillmer/rust,rprichard/rust,dwillmer/rust,jashank/rust,jroesch/rust,ejjeong/rust,AerialX/rust-rt-minimal,mahkoh/rust,rohitjoshi/rust,graydon/rust,jroesch/rust,aepsil0n/rust,GBGamer/rust,sae-bom/rust,AerialX/rust,vhbit/rust,ejjeong/rust,gifnksm/rust,vhbit/rust,richo/rust,zachwick/rust,victorvde/rust,mvdnes/rust,ejjeong/rust,zachwick/rust,andars/rust,KokaKiwi/rust,pelmers/rust,zachwick/rust,gifnksm/rust,mahkoh/rust,l0kod/rust,aepsil0n/rust,mdinger/rust,krzysz00/rust,gifnksm/rust,jashank/rust,zubron/rust,l0kod/rust,cllns/rust,TheNeikos/rust,sae-bom/rust,carols10cents/rust,KokaKiwi/rust,mdinger/rust,vhbit/rust,mvdnes/rust,bombless/rust,XMPPwocky/rust,vhbit/rust,hauleth/rust,ebfull/rust,reem/rust,jroesch/rust,cllns/rust,aidancully/rust,pelmers/rust,aidancully/rust,ruud-v-a/rust,seanrivera/rust,rprichard/rust,philyoon/rust,gifnksm/rust,XMPPwocky/rust,untitaker/rust,richo/rust,kwantam/rust,jashank/rust,GBGamer/rust,reem/rust,graydon/rust,AerialX/rust-rt-minimal,pelmers/rust,GBGamer/rust,victorvde/rust,mdinger/rust,zachwick/rust,AerialX/rust,dwillmer/rust,robertg/rust,mihneadb/rust,untitaker/rust,philyoon/rust,kwantam/rust,GBGamer/rust,untitaker/rust,zubron/rust,victorvde/rust,GBGamer/rust,philyoon/rust,seanrivera/rust,mihneadb/rust,pelmers/rust,aidancully/rust,l0kod/rust,avdi/rust,andars/rust,hauleth/rust,jashank/rust,untitaker/rust,mahkoh/rust,andars/rust,andars/rust,avdi/rust,pelmers/rust,robertg/rust,jashank/rust,krzysz00/rust,jashank/rust,vhbit/rust,aepsil0n/rust,carols10cents/rust,XMPPwocky/rust,jashank/rust,zubron/rust,avdi/rust,XMPPwocky/rust,miniupnp/rust,reem/rust,zaeleus/rust,mahkoh/rust,hauleth/rust,pelmers/rust,TheNeikos/rust,zaeleus/rust,carols10cents/rust,mvdnes/rust,TheNeikos/rust,rprichard/rust,aneeshusa/rust,zachwick/rust,richo/rust,omasanori/rust,mvdnes/rust,aneeshusa/rust,mihneadb/rust,GBGamer/rust,ruud-v-a/rust,aneeshusa/rust,cllns/rust,miniupnp/rust,pshc/rust,hauleth/rust,zaeleus/rust,seanrivera/rust,omasanori/rust,sae-bom/rust,ebfull/rust,rohitjoshi/rust,untitaker/rust,aepsil0n/rust,mdinger/rust,l0kod/rust,reem/rust,sae-bom/rust,zubron/rust,pshc/rust,mahkoh/rust,ruud-v-a/rust,kwantam/rust,AerialX/rust,mvdnes/rust,carols10cents/rust,pshc/rust,sae-bom/rust,philyoon/rust,nwin/rust,rohitjoshi/rust,rprichard/rust,bombless/rust,rohitjoshi/rust,AerialX/rust-rt-minimal,mihneadb/rust,pshc/rust,ejjeong/rust,l0kod/rust,philyoon/rust,rprichard/rust,aepsil0n/rust,cllns/rust,krzysz00/rust,ebfull/rust,graydon/rust,mahkoh/rust,KokaKiwi/rust,zaeleus/rust,dwillmer/rust,ruud-v-a/rust,mdinger/rust,rohitjoshi/rust,victorvde/rust,bombless/rust,nwin/rust,zubron/rust,KokaKiwi/rust,aidancully/rust,dwillmer/rust,bombless/rust,zubron/rust,bombless/rust,TheNeikos/rust,aneeshusa/rust,aneeshusa/rust,vhbit/rust,miniupnp/rust,mihneadb/rust,nwin/rust,zubron/rust,carols10cents/rust,omasanori/rust,AerialX/rust-rt-minimal,carols10cents/rust,rohitjoshi/rust,KokaKiwi/rust,ruud-v-a/rust,AerialX/rust-rt-minimal,vhbit/rust,graydon/rust,GBGamer/rust,richo/rust,AerialX/rust,pshc/rust,nwin/rust,cllns/rust,richo/rust,kwantam/rust,richo/rust,ejjeong/rust,ebfull/rust,XMPPwocky/rust,l0kod/rust,untitaker/rust,jashank/rust,jroesch/rust,miniupnp/rust,miniupnp/rust,kwantam/rust,zachwick/rust,gifnksm/rust,krzysz00/rust,robertg/rust,hauleth/rust,seanrivera/rust,miniupnp/rust,AerialX/rust-rt-minimal,nwin/rust,avdi/rust,ebfull/rust,krzysz00/rust,vhbit/rust,philyoon/rust,KokaKiwi/rust,reem/rust,rprichard/rust,ruud-v-a/rust,sae-bom/rust,robertg/rust,pshc/rust,cllns/rust,XMPPwocky/rust,kwantam/rust,andars/rust,krzysz00/rust,ejjeong/rust,TheNeikos/rust,zaeleus/rust,jroesch/rust,jroesch/rust,ebfull/rust,AerialX/rust,zubron/rust,omasanori/rust,mdinger/rust,andars/rust,aneeshusa/rust,dwillmer/rust,miniupnp/rust