PRX-50: Allow more expressions as statements without parentheses
Previously, you'd have to write
```
(asm(ldr.app)).Meta["x"] = ...
```
(put parentheses around `asm(..)`)
The grammar has been refactored a bit to allow the following expressions at the start of a statement without wrapping them in parentheses:
* constant expressions (e.g., `"hello".method();`)
* this expression (e.g., `this.method();`)
* list literal (e.g., `[1, 2].method();`)
* object creation (e.g., `new Object.method();`)
* assembler expressions (e.g., `asm(ldr.app).method();`)
Note: all of these were always allowed within _expressions_ without wrapping them in extra parentheses. This change is solely about using these at the start of a statement.
And yes, some of these (for instance the constant and to some extent the list literal) don't make much sense as the start of a statement, but (A) the _parse_ error message is really difficult to understand and (B) it may then make sense in combination with `>>` or potentially in the future with `=`.