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 have confirmed that `def_delegator` won't work here. When `new` is redefined, `alloc` will also point to the redefined `new`, which is not what is needed. I need a way to create a new instance after `new` has been "hijacked" for use as part of the public API.