Add Revwalk

I had a thought that there could be a `Commit`s iterator over the revwalk in addition to the `Oid`s but I didn't end up needing (or, obviously, implementing) it.
It's pretty simple to turn an `Oid` into a `Commit` though, so I have no qualms about moving the `Iterator` implementation.