Split HashTable out into mutable and immutable kinds.

There are some inference problems making the marketplace tests fail. I'll need same help fixing that up.
If `equal?` is slow we should fix that not cover it up. For your change its fine though then.