Add with_iter.

- Wraps an iterable in a with statement, so it closes when consumed.
Make with_iter() use the object returned from __enter__(). Add a test. Add to docs. Refs #18.
Merge with_iter. Closes #18.