A better peekable struct unlike the std version of Peekable, where we hold more than 1 peeked item.
An extension trait for Iterators allowing better peeking into the iterator
Iterator