Remove optional Nl production
Avoid optional lexical syntax in CF productions

Optional lexical syntax, e.g. as in `(":" Type)?` is harder to handle in
pretty-printing.
Fix some pretty-printing issues

The auto-generated pretty-printing rules do not take the
layout-constraints into account. This leads to invalid syntax when
pretty-printing a parse tree derived from this grammar.

As the layout information is not accessible during pretty-printing with
the BOX language, it is not possible to recreate the input source from
the parse tree. Additionally there is no context information for the
constructors. As some statements are ambiguous if not separated by a
blank line, this leads to rather ugly-printed results. The focus for
this kind of pretty-printing is thus to create correct code for the
given tree and only slightly try to make it visually appealing to
humans.

The changes are only sparsely tested and may need further refinements.