Clean up readable stream promise management.

- Spec change: removes unnecessary re-creation of [[waitPromise]].
- Reference implementation: clean up promise creation, resolving, and rejecting; uniformly clear the resolve/reject functions more consistently so as to detect bugs.
Fix test typos
Add acknowledgment for #202.
Use ws.foobar() style for tests about non static methods

See https://github.com/whatwg/streams/pull/197#issuecomment-54631762
Ignore the fulfillment value of the source's cancel().

Also, fix the type of ReadableStream.prototype.cancel() in the IDL to Promise<undefined>.
Remove an accent grave left by mistake
Use "sinkAbortPromise" also in the reference impl
Test that abort rejections from the sink are passed through
Use "fulfilled" in tests where appropriate over "resolved".

See https://github.com/domenic/promises-unwrapping/blob/master/docs/states-and-fates.md for the difference.
Fix the test calling readInto() when ReadableByteStream is waiting
Add cancel() method to ReadableByteStream
Move abstract op implementation out of ReadableByteStream class

Fixes: #181
Put design rationales of ReadableByteStream

Issue: #177
Port over the spec entirely to Bikeshed/HTML

It now lives on https://streams.spec.whatwg.org/, with subdirectories automatically generated for each branch and commit (but of course master goes in the root).

The parts of the README that were somewhat incomplete, like the strategies or transfer stream or pipeTo algorithm, were ported over still-incomplete, so that still needs to be done. TeeStream was moved to a separate file as an experimental extension, like the binary one.

While doing this, added non-normative descriptions for all the methods and getters, and fleshed out a few more concepts in the Model section.

While doing this, found and fixed a few errors-not-being-caught bugs (#128) and made a few other normative tweaks. In total, they are:

- set `[[startedPromise]]` to `undefined` after it fulfills, to free up that memory.
- Catch errors computing the chunk size in `writableStream.write(chunk)`.
- Catch errors enqueuing a chunk in `writableStream.write(chunk)`. (These would occur if the returned size was NaN/+Infinity/-Infinity.)
- Stopped using pointless write records of `{[[type]]: "close", [[chunk]]: undefined, [[promise]]: undefined}` and instead just used `"close"`.