Big WIP: changing the notion of flattening tuples/types and how unit tuples are represented.
This is to actually support, say types like (Vector Z).  The transformation is not complete
and some tests are currently failing.

Currently, a new ArrayPayload variant has been pushed through for unit arrays, and earlier passes
(UnzipArrays) have been changed.  The final repacking still screws things up, for example failing p13g.
Add some new unit tests