Make PeekIterator covariant

@alexbergeron please let me win against @mlaflamm 
Yeah... that makes theses methods invariant, so `BufferedIterator` is still not truly covariant

Let me try something