First cut of support for array literals.

As these use partially overlapping syntax with at literals, we have to
have more detail in the arser to distinguish cases. We do not currently
correctly distinguish single element arrays on the rhs of an operator.