Consolidate checksum code in shared helper iterator.

Heading towards #78.

This appears to be catching a real execution divergence somewhere in ld.  Pretty reliably reproducible, there's a bit that's set in the recorded checksum that's not set in the replay one.  We need one more debugging helper to make slogging through these kinds of bugs approach sanity ... the one I started writing about 4 hours ago before getting sidetracked :/.  But now a nap beckons.