Add Interleave iterator

@sfackler was interested in having this adapter, so I hacked it together.
@kballard it's certainly doomed to be at least off-by-one without the other structure's information. You're right that I unnecessarily make it off-by-two in a specific case. I think I had gotten myself caught in a bad logic loop and convinced myself that it's "best to be safe", especially since the quality of the upper bound is already going to be imperfect just by the nature of getting one None. But assuming the None is representing "huge" and not just "I dunno", we can get perfectly accurate results.

I actually do like your suggestion of deferring to calc_size with uint::MAX, as I think it effectively captures the reasoning behind the explicit code I've written: assume that the other iterator is bigger (because that's all you *can* do).