RFC: Add DerefMove

[Rendered view](https://github.com/P1start/rfcs/blob/deref-move/active/0000-deref-move.md)
That’s a good point. Maybe the rules could be revised to this:

1. If the type implements `DerefMove` but not `Deref` or `DerefMut`, all dereferences are done using `deref_move`.
2. If a reference is being taken to a dereference (e.g. `&*ptr`), call `deref` or `deref_mut`, depending on the mutability of the reference.
3. If a value is being dereferenced and implements `DerefMove` and `Deref` and/or `DerefMut`:
  1. If the type is `Copy`, call `deref_move`.
  2. Otherwise:
    1. If the type implements `Deref<T>` where `T: Copy`, call `*deref` or `*deref_mut`.
    2. Otherwise, call `deref_move`.
4. If a value is being dereferenced and does not implement `DerefMove` but does implement `Deref` and/or `DerefMut`, use `deref` or `deref_mut`.