#hash and Opal fixes

Sent #310. Though my opinion is that we can fix both problems with the `hash_class` trick and adding a single additional spec that ensures the `hash_class` is `Fixnum`. 

Something on the lines of:

```ruby
def hash_class
  Fixnum
end

deviates_on :opal do
  def hash_class
    String
  end
end

describe "class returned by #hash" do
  hash_class.should == Fixnum
end
```

Of course my concern comes from the desire to avoid duplicating those specs inside Opal, looking at them I found they don't seem to reaveal very clearly their intent.

(finale note: I won't push this any further 🙊, but I though a last attempt was worth it 😉)