Add Interleave iterator

@sfackler was interested in having this adapter, so I hacked it together.
Do you think I should just copy-paste the logic here, or split it out into a private method or function of the module? Not sure on namespace pollution policy in this case.