Correctly compare memory fragments when moving in
seec::trace::moveForwardUntilMemoryChanges() or moveBackwardUntilMemoryChanges(),
rather than relying on modifications changing the fragment iterators. This was
done by changing MemoryState::Region::getContributingFragments() to return
copies of the contributing fragments, rather than iterators (hence no change
to the code of the aforementioned movement functions).