Make sure that the way raw pointers are used to implement this crate makes it impossible to violate [the stacked borrows model](https://github.com/rust-lang/unsafe-code-guidelines/blob/d65f15a6f390dfd0faf217ca2adc11d8747f6077/wip/stacked-borrows.md) using the safe API.