Yet again, restructured the hash map iteration style.

Iterators are now objects that are stored in memory. They are created,
destroyed, advance, and used by the HashMapController. They effectively
work the same as before.

This commit only brings the new source file up to compilation. The unit
tests need to be updated to reflect the changes and AllInMemNmuTable still
needs to be completed using the new HashMapController.