Major rewrite on top of AsyncIterator prototype and async generators.