Adding assertion and assumption keywords to reserved set.

The previous way did not work, it seems. Just reverting to the manual listing of all reserved words.
Making sure we’re capable of expressing all optionals in concrete syntax.

Missing optionals sometimes causes issues/conflicts in concrete syntax. This guarantees we can give proper positions to them (even if empty).

E.g. |[x]| when x may be followed by an optional type has to be |[x optTypevariable]|, and optTypeVariable may be empty. Oddly enough that does not always happen. Still studying this.
Build generation file update.