Add support for mixed match lists
Add support for mixed match lists

A MatchList (new subclass of ExpressionList) can contain not only
expressions, but also types. Since they can be mixed in any order, we
need to sort them using the same trick as for case types.
visitExpressionList is retained, though as far as I’m aware the parser
never emits ExpressionLists that aren’t also MatchLists.

The change to visitMatchCase is necessary because a MatchCase also
sometimes contains a variable, which is synthetic and shouldn’t be
formatted.

Part of #145.

ceylon/ceylon.formatter