Changed `stdoutLn` to ignore broken pipes

Requested by @k0001

Two things finally compelled me to make the switch:

* I wanted the `Consumer` section of the tutorial to lead with a simpler example

* I didn't want to depend on the non-portable `GHC.IO.Exception` module