Make Path iteration methods visit only original elements.

This makes iteration much easier to reason about, because it avoids taking
any stance on what sorts of modification are accommodated by the iteration
methods. If you need to handle new elements, that's entirely up to you.