Added a new module HMap. It works (almost) like Map, except that it expects
the provided type to come with a hashing function. The internal representation
is changed, such that values are first compared w.r.t. to their hash.

This effectively saves a lot of comparisons which may be far more expensive
than O(1), as in the string case, hence resulting in an overall speedup.

CAVEAT: everything is not implemented yet, and order-sensitive functions
now do not respect the provided order anymore.