cmp: derive Clone for Ordering
cmp: add Ord+TotalOrd impls for Ordering itself
auto merge of #5766 : thestinger/rust/cmp, r=brson

It was simpler to just give the variants a value instead of listing out all the cases for (*self, *other) in a match statement or writing spaghetti code. This makes the `cmp` method easier to use with FFI too, since you're a cast away from an idiomatic C comparator function. It would be fine implemented another way though.