Initial attempt at removing String monkey patch

Finally gets rid of the string monkey patch and runs the same conversion on all IO lines passed through `Pipe`.

* Adds a `PipeStub` class that inherits from `Pipe` for easier stubbing of pipe objets with fixtures.
* Adds a `read_file` helper method for real file reading in integration tests.