change and document iterators for consistency

This change alters the design and behavior to be more
consistent with the standard library. Method Step
(returning bool and used in the for loop test) does the
work of fetching new items. Method Current doesn't
advance the iterator; it just returns the current item.

Also add tests and documentation to explicitly describe
side effects.

fixes #29
It's still available from the embedded Iter. Same for Step and Current.

From the type's commentary:

```
// The embedded Iter carries methods with it;
// see its documentation for details.
```

I stole this phrasing from http://golang.org/pkg/net/textproto/#Conn. We can definitely do some wordsmithing if it's unclear.