Hash.new and Hash.allocate should return subclasses of Hash