Handle iterator blocks returning Deferrable

So that they can return Deferrable instead of calling iter.next
This also handles failure of one or more operations nicely