RFC: deref coercions

Add the following coercions:

* From `&T` to `&U` when `T: Deref<U>`.
* From `&mut T` to `&U` when `T: Deref<U>`.
* From `&mut T` to `&mut U` when `T: DerefMut<U>`

These coercions eliminate the need for "cross-borrowing" (things like `&**v`) and calls to `as_slice`.

[Rendered](https://github.com/aturon/rfcs/blob/deref-coercions/active/0000-deref-coercions.md)
I'm still not sold on this idea, you are suggesting that the ownership intuition in Rust trumps being explicit about indirection. While I agree that ownership is a very important principal, I feel it comes second to indirection. In a language with explicit memory management (which I think Rust is, even if you don't explicitly call 'free' yourself) I think programmers (beginner or otherwise) have to be extremely concious of indirection and that this is primary to ownership. I fear losing that explicitness in Rust.

I believe it will make programs more convenient to write in the long run, but harder to read, and easier to introduce bugs.

I really like that this proposal doesn't introduce implicit borrows (cf 226). I think that would pay for the extra `&`s (which I'm otherwise not a fan of). But losing the explicitness around indirection would make me sad.