Tuple values

Also reworked the grammar so that types and values are differentiated, and so that subcases of expression can be differentiated.
See also `typevalue: IDENTIFIER | ...` (since all types are composed from simpler types).