core: add functions for creating empty slice iterators.

This is useful when building iterators over data structures containing
`Vec`s (or `[]`s) since one can store `slice::Items`s in the iterator,
initialising it to `Items::empty()` and thus avoiding the need for
duplicated code between the initialiser and the `next` method, and
avoiding duplicated checks from storing `Option<slice::Items<...>>`
instead.