Add Interleave iterator

@sfackler was interested in having this adapter, so I hacked it together.
Yeah, `uint::MAX` works well enough, because if you have a `Some` bound then you know it's `<= uint::MAX`, and your calculation is based upon the smaller of the two. So `uint::MAX` is guaranteed to work.