Since `Id`s will never be null, the representation of `Option<Id<T>>` can take advantage of this to be the same size as an `Id<T>`. Doing this requires the `NonZero` struct, which is being stabilized with rust-lang/rust#27730.