REPL: Add toIterator (and related methods)

**Work in progress, do not merge**

- [ ] Refactor ad-hoc code from `snapshot` into TemporarySequenceFile class (possibly separated out into `TemporaryFile` and `TypedSequenceFile`)
- [ ] Add `toIterator` that works at least for snapshots
  - If called on a TypedPipe that is not snapshotted, generate a snapshot and call `toIterator`
  - Ideally would allow running simple flatMappable operations without creating new snapshots (almost working)
  - `toList` and `dump` are trivially implementable from `toIterator`
- [ ] Add documentation for new functionality, including changes made in #918
  - [ ] Add note about the repl to the README
  - [ ] Add a "Repl Walkthrough" Wiki page
Actually, you can keep this approach, but instead of checking if there is no previous, how about also checking if the flatMap function is a converter: https://github.com/twitter/scalding/blob/develop/scalding-core/src/main/scala/com/twitter/scalding/typed/FlatMappedFn.scala#L36 which it would be from an initial flatmap without filters.