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
Thankfully [ToBoolean](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-toboolean) will pass through abrupt completions for you. I'll tidy this up in the merge.