BUG: MapIter leaked itself and arr and index objects

MapIterBind incorrectly behaved when failing, cleaning up most
but not everything. The callers have to decref the mapiter
object. Which basically means that MapIterBind does not even
have to decref the new fields (they are decrefed in the
mapiter dealloc anyway).

Note that trying to add tests checking the refcounting
failed, but the tests seem to fail at least in many cases
not because of the indexing.

Closes gh-3589