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
So we are now being inconsistent between errors in size() vs. errors in needsMore(). Probably both of them should trigger the errored state. I will consistify them in a follow-up commit.