Updates to work on latest NQP.
Start porting the core of MapIter.

It was a blob of PIR. This does it mostly with QAST trees. Not yet
complete; missing control exception handling and sink stuff. Works for
the basic cases, though.
Fix REPL bug when same line issued twice.

Reported by lee_++.
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 .
Get rid of evil eval hack in Any.hash, change type to keytype

The latter was suggested on #perl6 by TimToady, as I recall.  Possible thanks
to the work of pmichaud on Hash.new.