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
You can just use an object literal instead of creating a class and then creating an instance of the class. I will tidy this up during the merge.