Allow array literal form to follow spread operator in function call args. Fixes gh-2060

I think it would be good to also have the following test cases:

```js
foo(..."string") // string primitives are iterable, so this would work just fine
foo(...[1, 2, 3].entries()) // the method is part of the expression
foo(...(new Map).set("a", 1).values()) // the methods are part of the expression
```