Support using `arguments` as an iterable.

We can't add an @@iterator field to the prototype of `arguments`, so we
need to special case it in ES.GetIterator and ES.IsIterable instead.
Ensure that Promise.all() works on array-like objects as well as arrays.