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.
Why cannot we just use `hash/c` and `#:immutable #t` or `#:immutable #f`?