Add Interleave iterator

@sfackler was interested in having this adapter, so I hacked it together.
I guess it doesn't really matter. My preference would be to skip the asserts here, and let `Zip` be updated in a different PR (if anyone really cares), but if you want to leave the asserts in for consistency, I suppose you can do that.