Some fixes to the ISWIM-as-producer case.
Change Repeat to Replicate in HORepresentation.
Add abstract data type for managing array transforms.

This means that input/output transforms are now the same type.
Importantly, it also means that we can do transformation coalescing
transparently.