`NonEmpty` vector implementation, ensure non-emptiness by construction. Inherits `Vec`'s immutable methods through `Deref` trait, not implements `DerefMut`. The differences from `Vec`: * `len` returns `NonZeroUsize`, `is_empty` always returns `false`. * `first(_mut)`, `last(_mut)`, `split_first(_mut)`, `split_last(_mut)` don't return `Option`. * `pop` returns `None` if there is only one element in it. More usages please look at the embedded unit testing.