Guide: iterators

An introduction to iterators. I kinda like this, but I kinda don't. Hmmm.
I thought about this a bit more, and I think calling `map` an iterator isn't dissimilar to calling `increment` a number (it takes a number and returns a number, like `map` takes an iterator and returns an iterator).

However, the real sticking point is there's 3 concepts here:

1. basic iterators; `v.iter()`, `range`, `Unfold`.
2. iterators that just convert/transform/adapt other iterator(s); `Map`, `Scan`, `Filter`.
3. functions that take an iterator and consume some values out of it; `fold`, `std::result::collect`.

1 and 2 aren't dissimilar (and calling `foo.map(|x| ...)` an iterator is fine, but the method `map` is not an iterator in isolation), but 3. is. It seems unnecessarily confusing to just call them the same thing all the time ("you can only use a for loop with an iterator" => "`foo.nth(0)` is apparently an iterator, so why doesn't `for x in foo.nth(0) { ... }` work?").

Possible naming scheme:

1. iterator
2. iterator adaptor, adaptor, iterator (depending on context)
3. iterator consumer, consumer (if the 'iterator' is clear from context, as it would be in this section)