Moved checked trait impls out of std::num

This follows the same pattern as the other numeric trait impls, and reduces the clutter in std::num.
Add Clone and DeepClone constraints to Primitive trait
auto merge of #9051 : bjz/rust/master, r=huonw