#hash and Opal fixes

Fair enough :)

In Opal the hash table is the literal JS object, that means hashes are strings. I though them being Integer was not a feature but rather an implementation detail. I'm open to any other solution, my preferences would definitely go to avoiding `non_compliant` tho.