Setting the Stage

In our discussion with @talumbau yesterday we decided it would make refactoring life easier if we output one big DataFrame in run(). To satisfy our testing suite, though, we have to split it back up into small CSVs.
This PR provides the machinery for this.

Note: this contains some commits from #57, I forgot to revert them in GIT even though I undid their changes in eb57c13b6b12d2201bd5cbe47196444a3001929b. Sorry for any confusion.