Add private `NonZero<T>` type alias. According to step 2 suggested in https://github.com/rust-lang/rust/pull/100428#pullrequestreview-1767139731. This adds a private type alias for `NonZero<T>` so that some parts of the code can already start using `NonZero<T>` syntax. Using `NonZero<T>` for `convert` and other parts which implement `From` doesn't work while it is a type alias, since this results in conflicting implementations.