std: Make logging safely implemented
std: Make logging safely implemented

This commit fixes the logging function to be safely implemented, as well as
forcibly requiring a task to be present to use logging macros. This is safely
implemented by transferring ownership of the logger from the task to the local
stack frame in order to perform the print. This means that if a logger does more
logging while logging a new one will be initialized and then will get
overwritten once the initial logging function returns.

Without a scheme such as this, it is possible to unsafely alias two loggers by
logging twice (unsafely borrows from the task twice).

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