Add Interleave iterator

@sfackler was interested in having this adapter, so I hacked it together.
This isn't right. `RandomAccessIterator` does not imply `ExactSize`. This means that it's technically ok for the `size_hint()` to return a lower bound that's lower than the indexable range of the iterator. I can't imagine that it's particularly useful to do that, but it's legal.

To that end you need to replicate the calculation here, using `self.a.indexable()` and `self.b.indexable()` instead of the lower bound.