DesignatorExpression has same form as StableId
Changes productions for blocks
Remove ambiguities with identifiers
Reorders expression productions and fixes templates
Improves whitespace

* adds comments
* change context-free restrictions to lexical restrictions
Changes some expression productions
Readds ':' to OpChar
Allows empty bindings

Needed for anonymous functions without parameters:
() => _
Adds space to printable chars (for Strings)
Changes Constr production

It has used ArgumentExprs before, as given in the reference syntax. But
according to §5.1.1, there are no BlockExprs allowed at this position.
Adds special WildcardType

_ is forbidden as regular identifier, so this could do the trick for
wildcard types
Changes expression productions

Introduces lexical AssignOp as "=" and adds a restriction, so that =>
can not be confused with an assignment.

Refactors function expressions to own production.

Readds the DesignatorExpr, because it is needed for expressions of the
form null.asInstanceOf[T].