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
@johnynek I'm having issues with TextLine. I've figured out that the problem is that I need to use TypedPipeInst's `fields` (`sourceFields`) to select the right fields from the TupleEntry before passing it to flatMapFn.

Is there a way to do something like [RichPipe.eachTo](https://github.com/twitter/scalding/blob/develop/scalding-core/src/main/scala/com/twitter/scalding/RichPipe.scala#L477) but without a Pipe? Or should I detect when this is the case and force a snapshot?