Implement tuples as syntax sugar for newtype for record types.

Tuples are represented as

    newtype TupleX a b ... = { _1 :: a, _2 :: b, ... }

This commit implements a desugaring pass which translates TupleLiteral values
and TupleBinder binders into AST corresponding to chosen representation.