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.
I'm claiming that this function will never be called with `(hash/sc any/sc any/sc)`. The reason is that  the arguments to `hash/sc` need to protect both values flowing both ways across the typed/untyped boundary. The only way for values flowing in to not need a check is if the type of the hashtable is `(HashTable Any Any)`, but in that case the values flowing out need to be checked with `any-wrap/c`. Thus the case cannot happen.

You just took the existing case and did the correct solution assuming it was right. I'm taking a second look at the existing case and saying it is dead code.