Hash.empty works on subclasses which have never been insubstantiated

This fixes a little corner-case bug in `Hamster::Hash`...

```
[1] pry(main)> require 'hamster'
=> true
[2] pry(main)> class H < Hamster::Hash; end
=> nil
[3] pry(main)> H.empty
=> nil
[4] pry(main)> H.new
=> {}
[5] pry(main)> H.empty
=> {}
```

See? When you subclass `Hamster::Hash`, `empty` only works on the subclass after you have called `new` at least once.

I'm opening a PR to get comments from others on code style, etc. before committing this to `master`.
I am doubting if that will work, but I will try. Here we need to grab a reference to the original `new` before we override it. Calling the original `new` after it has been overridden can also be done using something like `Class.instance_method(:new).bind(self).call`, but that's rather ugly.

I think I should also clarify that when RDoc or something similar is added to this code, I would mark `alloc` as hidden (no documentation). It's not intended to ever be called from outside Hamster.