Typo in README.md: empy -> empty
Move cancellation tests to their own file.
Clean up promiseCall helper to use more ES6.
Allow cancellation reasons to be passed through.

Now they arrive at the underlying source via the cancel constructor parameter. Some places in the spec were kind of assuming this already; it was inconsistent. See #129.
Rename test/readable-stream-cancelation.js to -cancel.js

Otherwise the abort counterpart would have to be called abortion O_O.
Add some basic test for writable stream abort.

This uncovered some spec bugs in the WritableStream's [[error]](e) internal method.
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.
a