Fix closing writable streams with writes in flight.

When a writable stream has a write in flight, but is also in the writable state (due to a strategy with a sufficient high water mark), everything would break. It would end up in _doClose() too early, before the in-flight write finished. Now it properly queues the close and processes it after the in-flight write.
WritableStream: [[error]] must replace [[writablePromise]]

When a WritableStream is in a writable state, [[writablePromise]] is set to a fulfilled promise. We need to replace it with a new rejected promise.

In writable-stream-abort.js, 'Aborting a WritableStream causes ...' test is testing a WritableStream in writable state which now returns a pending promise which gets rejected but this should be a fulfilled promise to be consistent with the initial value of [[state]] that is 'writable'. We need to fix this behavior later but for now just put the WritableStream in 'waiting' state and test what stated in the test description.
Refer to the reference implementation for pipeTo.

Keeping the code in sync between the README and the reference implementation is just silly.
Group internal members in the IDLs for readability
Make WritableStream delay advanceQueue until start completes
Promise.race() based select like pipeTo implementation

Also adds more test cases for pipeTo
Revert "Promise.race() based select like pipeTo implementation"

This reverts commit aedbf18174dd7d39f4df6ff553771aaf05cf0f15.
Reland "Promise.race() based select like pipeTo implementation"
Update acknowledgments.
Add [[started]] to WritableStream IDL
Make WritableStream's wait() return a rejected promise once close()-ed

See https://github.com/whatwg/streams/issues/140#issuecomment-49323433
Check that error call on WritableStream in waiting state updates writablePromise correctly
Add error argument to start of WritableStream

Issue: https://github.com/whatwg/streams/issues/139
Update the explanation of constructor options that can return a promise
Refactor callPull into callPull and callOrSchedulePull
Add [[callOrScheduleAdvanceQueue]] to the IDL
Make [[enqueue]] consult needsMore even when state was waiting

Also adds code to handle an error in needsMore

Issue: https://github.com/whatwg/streams/issues/119#issuecomment-47197022
Handle strategies that throw on size() better in readable streams

See https://github.com/whatwg/streams/pull/155/files#discussion_r15358699. Part of a larger effort tracked as #128.
add duplex streams to faq
Clarify pipeTo vs. pipeThrough FAQ entry a bit.