Use a separated hash-table for strings/symbols keys

This adds `self.smap = {}` to Hash objects that will contain key/value for all String or Symbol keys.

It won't call `#hash` on String/Symbol keys and instead will just use them as keys.