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 had to add those so that marketplace and redex would typecheck. They were passing in the identity for the update function, which is universally quantified. The freeness of the type threw the inferencer off. If the inferencer improves, these cases won't be necessary.