### What it does
Checks for types that implement `Copy` as well as
`Iterator`.

### Why is this bad?
Implicit copies can be confusing when working with
iterator combinators.

### Example
```
#[derive(Copy, Clone)]
struct Countdown(u8);

impl Iterator for Countdown {
    // ...
}

let a: Vec<_> = my_iterator.take(1).collect();
let b: Vec<_> = my_iterator.collect();
```