ResultDiffer's output wasn't sufficiently descriptive to be properly usable. oAdded and oChanged need the index in the putative final list (as sorted by identity/significant field names) and the index into the result table (so we don't have to move that data around, just int offsets into it).
Be able to pass required and optional columns without having to use an sConcreteHead explicitly.