Restore mapiterinit(), mapiterkey(), mapiterelem() and mapiternext().
Restore mapiterinit(), mapiterkey(), mapiterelem() and mapiternext().

https://github.com/golang/go/commit/1b2d794ca3ba60c2dbc958a271662784a7122739
in the upstream changed signatures of those functions in the reflect
package. The upstream `hiter` type is a close functional counterpart of
the `mapIter` type we already had, so I renamed `mapIter` into `hiter`
to match the upstream, and updated function implementations to match the
upstream signatures.

gopherjs/gopherjs,gopherjs/gopherjs,gopherjs/gopherjs,gopherjs/gopherjs,gopherjs/gopherjs