Ensure writable stream abort reason is passed through.

See #129.
Fix some pipeTo whitespace.

Also make the spec version two-spaces so I don't have to convert between.
Try to propagate piping errors backward better.

- If the destination has errored, propagate that error backward as a cancellation reason.
- If the destination has closed unexpectedly, propagate that backward as a cancellation reason.

Also includes two commented-out tests for cases that do *not* yet work: when you abort or close a destination after setting up the pipe relationship, we do not listen for the correct state transition, and thus never propagate those reasons backward.

Part of #129.