Added Mozilla-compliant AST specification

Generic ECMAScript+JSX parsers and some other tools use extended Mozilla AST format as intermediate representation.

This PR describes those extensions for new spec consumers that want to work with AST.
> The spread in CallExpression is not called SpreadElement in the ES6 spec.

Looks like here comes root of our misunderstanding.

ES6 spec !== Mozilla AST format spec (and type names are not even supposed to match - check out marijnh/acorn#113, there were some discussions and explanations on this).

Reflect.parse, Esprima#harmony (incl. [Esprima-FB](https://github.com/facebook/esprima/blob/fb-harmony/test/harmonytest.js#L13217)) and Acorn all use SpreadElement as representing for argument in call expression, array literal, whatever. So I think it makes sense to reuse it as parent class in SpreadAttribute, too.