Make PeekIterator covariant

@alexbergeron please let me win against @mlaflamm 
Nah, I was going to saw that it's not possible to make it truly covariant with mutability, then had a glimmer of hope, then pressed Sent, then realized that it didn't make sense.

[Relevant StackOverflow answer from Daniel Spiewak](http://stackoverflow.com/a/674090)