Tuple values

Also reworked the grammar so that types and values are differentiated, and so that subcases of expression can be differentiated.
Good catch, Max. This line should be `if (!otherType.isSubtypeOf(myType)) {`