`equal?' hashing: shortcut and some caching for structure transparency
improve complexity of `hash-iterate-{key,value}'

For immutable hashes, `hash-iterate-{key,value}' used to take O(N) time on
the first call for a particular table and O(1) thereafter. Now it takes
O(1) time for all calls, the constant is only slightly larger for
the non-first calls, and there's no extra allocation.
change `eq?' hashing to avoid dropping the low bit for fixnums