librustc: Make vectors no longer implicitly copyable in rustc.

r? @graydon

~20% perf win for trans on -O0, with other minor improvements across the board.
No effect on -O2.

Much of this change was made with a Perl script to make all the copies explicit. The copies that seem questionable are annotated with `/*bad*/`.

There is a borrowck unsoundness noted with the "Beware!" comment in typeck — there should be a bug on this. It will go away when we de-mode rustc.