Add support for parsing spread operators (...arg)

Intended for Harmony/ES6, the spread operator is a natural
complement to and accompanies rest parameters. It can be used in
the argument list when calling a function like `foo(a, ...b, c);`
or in an array literal like `var arr = [a, ...b, c];`. The ES6
draft also provides for its use in new expressions like
`var instance = new Foo(...args);`, but that is not supported as
an ES5-compilable form because constructors cannot be called with
`.apply()`.

It is implemented by creating a new node type, SpreadExpression.
A SpreadExpression has the `type` property `"SpreadExpression"` and
an `argument` property containing an `Identifier` node.

http://wiki.ecmascript.org/doku.php?id=harmony:spread