middle::ty::str: Derive Show

This also adds Show instances for contained types.
middle::subst: Use custom Show for VecPerParamSpace
middle::kind: Use sty's Show instance instead of {:?}
middle::typeck::astconv: Use Show instead of {:?}
typeck::infer::region_inference: Use Show instead of {:?}