Switched to using iterators instead of indices in some Tracer code.

Will ease the way to implementing surface splitting.
Changed surface splitting API in preparation for implementing splitting.