Restore DOT_OPERATOR in parser

I could not make the operator precedence rules and left-recursion work
for noParenthesesOneExpression and dotIdentifier, so I made
matchedExpressionDotOperation, which operators on any matchedExpression
to trigger the BINARY operation handling in the generated parser.
IDENTIFIER directly in matchedExpression caused left-recursion issues,
but by wrapping the IDENTIFER token, in a rule, identifierExpression, I
was able to have identifierExpression extend matchExpression, which
allowed removal of the left recursion.  This can be summarized as the
following transforms:

noParenthesesOneExpression => dotIdentifier
dotIdentifier => matchedExpressionDotOperation | identifierExpression.

While testing, it was discovered that `@attribute.identifier` parsed as
`@(attribute.identifier)` instead of `(@attribute).identifier`, which
was due to `matchedExpressionDotOperation` being after
`matchedAtOperation`, so the order was flipped.
Simplify dotAlias

With dotAlias just being ALIAS, dotAlias can be inlined into
maxExpression.