Replace Map based iter with own implementation.

This should hide the horrid std::iter::Map return type.