Add Interleave iterator

@sfackler was interested in having this adapter, so I hacked it together.
You can ditch the comment by using a local variable.

```rust
let use_a = self.using_first;
self.using_first = !use_a;
if self.use_a {
    ...
```