Make .clones() part of Itertools trait as long as we can

The separate trait ItertoolsClonable isn't needed -- the bound is on the
iterator impl on the struct. It's much more convenient this way.
Add function linspace