Cleanup the map-reduce interface.

Now the process is just a function that accepts a io.Reader and an io.Writer.