Wrapper class for a HashMap<Value, Value>. We need this because we want String and StringConst
to hash to the same value (what a script user will expect) and that requires a VM so can not just
implement Hash on Value (will not have access to a VM).
Iterator over the key vals in a HashMap.
Iterator over the keys in a HashMap.
Provides a wrapper to allow us to build a hashmap with Value keys that hashes String and StringConst
to the same hash.
Note, this is public only to allow use of insert_id and remove_id which we need to work around
borrowing issues.