Merge `*SliceExt` traits, use assoc types in `SliceExt`, `Neg` and `Not`

The following traits have been removed:

- `ClonedSliceExt`
- `PartialEqSliceExt`
- `OrdSliceExt`
- `BoxedSliceExt`

All their methods have been moved into the `SliceExt` trait using `where` clauses.

The `Neg` and `Not` traits now have an associated type for their return type. This breaks all existing implementations.

[breaking-change]

---

r? @aturon 
cc @nikomatsakis