This transform is complementary to the structured.pack op which
allows packing a whole op but does not allow transposes on the individual
operands.
structured.pack_transpose allows transposing single operands connected to
pack or unpack ops after the fact.
This makes the system overall more composable than e.g. a giant transform
op with all permutation specified at once.
Do we expect concrete ops to ever reimplement this behavior? Otherwise, this looks like a good fit for extraSharedClassDeclaration instead of being an interface method. This lets the body live in C++ rather than string, allows for faster dispatch (no pseudo-vtable), and avoids funny discrepancies like the difference between $_op and this->getOperation().