note about ref patterns in pointer guide

Fixes #13602
"deconstruct"

Also, it's more when the type you're trying to get access *to* (not the one you're pattern matching on/deconstructing) has a dtor and you can't move it, e.g. when stored behind a `&`. Something like

```rust
fn possibly_print(x: &Option<String>) {
    match *x {
        // not valid, cannot move out of a `&`
        // Some(s) => println!("{}", s)
        // so instead take a pointer into the memory of the `Option`
        Some(ref s) => println!("{}", *s),
        None => {}
    }
}
```