Remove std::cmp::cmp2.

It isn't used anywhere and `cmp2(a, b, c, d)` is identical to
`(a, b).cmp(&(c, d))`.
Tag derived impls with #[automatically_derived]

This will enable rustdoc to treat them specially.
auto merge of #12929 : sfackler/rust/automatically-derived, r=cmr

This will enable rustdoc to treat them specially.

I also got rid of `std::cmp::cmp2`, which is isomorphic to the `TotalOrd` impl for 2-tuples and never used.