add IteratorUtil to the prelude
rm ExtendedMutableIter

replaced with `xs.mut_iter().enumerate()`
rm MutableIter

replaced with mutable implementations of Iterator
rm CopyableNonstrictIter

copies can just be done explicitly: `xs.transform(|x|x.clone())`
auto merge of #7078 : thestinger/rust/iterator, r=brson

The annoying method resolve bug with generic implementations is still around (#5898), but the conflicts ended up being resolved by adding underscores as a hack, in previous commits.