Previously revlog.addgroup would accept a changegroup and a linkmapper and use
it to iterate of the deltas. As part of untangling the revlog-changegroup
interdependency, let's move the changegroup delta iteration logic to it's own
function and pass the simple iterator to the revlog instead.
This will make it easier to introduce non-revlogs stores in the future, without
reinventing any changegroup specific logic.
This is now a little unnecessary, since the first thing you do is to put it back in a tuple (much like the output from _deltaheader). Still worth the complexity and performance cost for compatibility maybe or should we make this method return a tuple?