updated hash names to be more generic
Added simulation results
Changed Mapper iteration out of memory

The Mapper iteration style used to be implemented by storing an
iterator in memory. The old iterator pointed to a map and also held
other map specific information.

The new Mapper iteration style is a Mapper sub-class called Iterator.
It is the responsibility of the user to store the Iterator whether it
be in memory or locally (prefer local). The new iterator style doesn't
reference a map, and the corresponding map is given on all function calls
to the Mapper object.

All this work is in preparation for making the Mapper an abstract class
and making many subclasses.
Created a Mapper hierarchy.

Mapper is now an abstract base class. The old Mapper is now called
ChainedHashMapper that inherits from Mapper. The functionality specified
by the Mapper class is supposed to make it so that custom Mapper implementations
can be made and used by other modules without needing to know which
implementation is being used.