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.
Well, my thinking is that you can add things like decorators to properties.

```
{ @foo f: x, @bar ...y }
```

or other syntax that gets added. That could be wrapped, or you can expand the existing node with decorators.

I guess that thing could extend SpreadElement but then SpreadElement can't change independently. I guess I'm fine keeping this as `XJSSpreadAttribute <: SpreadElement` until someone settles on what to do with SpreadProperty in the Mozilla AST.