Add Revwalk

Instead of having a separate iterator, could the `Revwalk` structure implement `Iterator` itself?