Implement tuples as syntax sugar for newtype for record types

Discuss!

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.

It's OK If you are not going to merge this. Anyway, I gained more understanding of PureScript internals.