Transform

Creates a new Macro that allows you to define transformations from one thrift struct to another, where by default fields with the same name are copied from the source struct to the dst struct. It also allows for specifying functions to calculate the value for the specified dst field based on the src.

Example:
```
Macros.mkTransform[Types, SubTwo](
   ('intField,  (x: Types) => x.intField + 1),
    ('longField, (x: Types) => x.longField - 1)
)
```

I also did some tidy up to reduce the number of imports required in by maestro users.

Also deleted anything related to the Split macro since it isn't in use and has been superceded by the transform macro.
Sorry Stephan, I missed your reply. This reply refers to the old code I originally commented on.

srcFields and dstFields are actually structured quite differently, and quite right so, as you do different things with them later on. But their largely identical names suggest (perhaps just to me?) they are identical structures on two different groups of fields.

When I read the code, the different definitions drew my eye, and I wondered why they were different, whether that was a mistake or not, and I skipped down the page to figure out how they were actually used. If the names suggested their different roles, I would have probably just continued on reading the code normally.