Module Safe_pipe

Alternatives to appropriate Pipe.* functions that would catch exceptions raised by transformation functions and convert them to Errors on the output pipe, closing it afterwards. Contract is that if there is Error it would be the last element on the pipe.

If die_on_error is set, Shutdown would be called immediately if we encounter an error.