Enable Hash[TVal,TKey].new to work (for lizmat++).

This patch updates Hash.new so that it correctly understands
how to create typed hashes from a parameterized Hash type object.
In particular, `Hash[Str,Int].new` will create a hash constrained
to Int keys and Str values.

This patch at least partially addresses
https://github.com/perl6/specs/issues/43 .

Note that this doesn't resolve the output of `.perl` on
typed hashes; that's a different problem (having to do with
the definition of `Hash.perl` and/or `TypedHash.perl`).
And `.perl` is due for some redesign as well, see
https://github.com/perl6/specs/issues/6 .