librustc: Add a lint mode for unnecessary `copy` and remove a bunch of them

r? @brson