Follow up change for #173

Addresses comments by @domenic at
https://github.com/whatwg/streams/pull/173#issuecomment-53059246
Use RegExp for test.throws()

throws() expects the "expect" argument to be a RegExp.
Add a unittest to check that flushing lots of writeRecords doesn't overflow the stack
Change underlying sink write to be promise-returning
Use boolean [[writing]] flag instead of [[currentWritePromise]].
Add test to show why the state check is necessary.