Modified the Rascal syntax rules describing keyword parameters

Reason: in the existing grammar KeywordArguments may contain Expressions
and these could therefore also occur in Patterns. This is problematic in
the compiler. The modified grammar avoids this.

Solution: KeywordArguments and KeywordArgument now have a type parameter
and can be used with Expression or Pattern:

syntax KeywordArguments[&T]
    = \default:  OptionalComma optionalComma {KeywordArgument[&T] ","}+
keywordArgumentList
    | none: ()
    ;
    
syntax KeywordArgument[&T] = \default: Name name "=" &T expression ;

Notes:

- ASTBuilder had to be changed to handle KeywordArguments and
KeywordArgument in a similar way as the non-terminal Mapping.

- All (modests) implications of this change have been fixed
Fixed all implications of change in Rascal grammar for keyword arguments
Merge branch 'master' of https://github.com/cwi-swat/rascal.git
Merge branch 'master' of https://github.com/cwi-swat/rascal.git