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`.
It's not a problem, it's how `def_delegator` is supposed to work.
`def_delegator :self, :a, :b` makes a method `b` which *calls* `a`. So if
`a` is redefined, `b` will automatically reflect the change. But here I
want something which will *not* change when `new` is redefined.

After `new` is redefined (because it is part of the public API), I still
need a way to instantiate a new object. The code previously used `super`,
but that only works from inside `new` itself, and I need to call it from
elsewhere.


On Sat, Jun 28, 2014 at 11:20 PM, Kurtis Rainbolt-Greene <
notifications@github.com> wrote:

> In lib/hamster/hash.rb:
>
> > @@ -15,12 +15,15 @@ class Hash
> >      include Immutable
> >
> >      class << self
> > +      alias :alloc :new
>
> Curious. We can go with your current implementation and just make an issue
> for the problem, yes?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/hamstergem/hamster/pull/98/files#r14326338>.
>