DSTify Show and all the other formatting traits
auto merge of #18431 : japaric/rust/show, r=alexcrichton

r? @aturon 
cc #16918
trans: use types from argument patterns instead of the function signature.

This fixes ICEs caused by late-bound lifetimes ending up in argument
datum types and being used in cleanup - user Drop impl's would then
fail to monomorphize if the type was used to look up the impl of a
method call - which happens in trans now, I presume for multidispatch.