Pin and self-referential structs in Rust

Why `Pin<&mut T>` exists, and when your future really needs it.