Fix for #294

Changes:

- 1-based iteration number is passed as 3rd param to iterator callback (#294)
- Removed the part about breaking iteration from the "should iterate [promise]" test. Breaking iteration is covered by another test.

I made it 1-based instead of 0-based because to me it answers "how many iterations so far?" as opposed to being like an array index. Is this violating principle of least surprise?

Maybe it should be 0-based so it can be passed into key()? Would that even work? Actually, seems like key() is falling out of favor (#281)


Why the try block here, seems like we shouldn't be try / catching tests :-)