RFC: Raw Reform

* Introduce RawSlice and RawMutSlice extension traits to be implemented on
`*const [T]` and `*mut [T]` that provide parts of the slice and ptr API to better bridge the
gap between the two.

* Provide unsafe versions of the slicing and indexing operators on raw slices to provide ergonomic
unchecked slice manipulation.

* Provide unsafe versions of the addition, subtraction, and indexing operators on raw ptrs to
provide more ergonomic ptr manipulation.

* Deprecate some of the free functions in `ptr`, and duplicate the rest as convenience methods on
the RawPtr extension traits.

* Deprecate *all* `unsafe` methods on slices and `slice::raw` in favour of raw slices.

* Add conversion methods to the three families of extension traits for conveniently moving between
them.

[Rendered](https://github.com/Gankro/rfcs/blob/raw-reform/active/0000-raw-reform.md)
A C-ism? I don't think so. It's a common idiom in many languages when doing a copy where the number of elements copied is calculated rather than passed as a parameter.

I don't see what use `Result<(), uint>` would be. All it does is let you check if the copy wasn't truncated without having to get the length, but it's unclear as to whether it returns `Ok(())` in the case where `src.len() == dest.len()` or merely in the case where `src.len() <= dest.len()`. It also is intentionally throwing away information that might be potentially useful if you actually do care how many elements were copied regardless of whether there was truncation.