Remove unnecessary substitution of type params when generating
vtable methods before translating the ref to the method itself.
Fixed Gc::clone, implemented Gc::ptr_eq
auto merge of #11369 : kvark/rust/master, r=huonw

-Fixed Gc::clone to not require a Clone implementation for T
-Implemented Gc::ptr_eq to match Rc::ptr_eq, added a test for that
auto merge of #11386 : rcatolino/rust/ice-10955, r=pcwalton

So, like I mentioned in issue #10955 it doesn't seem like we need to call ```ty::subst_tps``` when the method is generic. But then I realized that this function doesn't mutate any of its input, and the return value is unused. Plus the type param substitution seems to be taken care of in ```trans_fn_ref_with_vtables```, so I thought I'd just try to remove it. As far as I can tell everything works.

This closes #10955.
Remove re-exports of std::io::stdio::{print, println} in the prelude.

The `print!` and `println!` macros are now the preferred method of printing, and so there is no reason to export the `stdio` functions in the prelude. The functions have also been replaced by their macro counterparts in the tutorial and other documentation so that newcomers don't get confused about what they should be using.