core: Reorganize slice module.

This is just moving things around so they are defined in a logical order.
core: Remove the unnecessary 'traits' module from 'slice'

This is only breaking for code that references the empty `slice::traits`
module.

[breaking-change]
auto merge of #15288 : brson/rust/cleanslice, r=alexcrichton

This does two things:

* Reorganizes the declaration order to be more readable, less random.
* Removes the `slice::traits` module, a public module that does nothing but declare impls of `cmp` traits.