Make Diff cycle through an Iterator, not a list. Introduces a BeijingIterator, so that we can use head/headOption/tail