process: handle errors

I wanted to try to read stderr and output it in the error message, but it ended up being a bit more trouble than I think it's worth - would have had either include Understream inside of the process stream (circular dependencies, yay) or duplicate some of the functionality that exists in `Understream.split`. I decided that for now just detecting these was good enough, but let me know if you disagree and think it's worth spending more time on.