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.
It doesn't do the actual transform it just produces a `Transform[Src, Dst]` object with a run method that can be called, but I can change the method name if you prefer. I also liked the fact that all the macro methods were prefixed by `mk`.

About using symbol instead of `Field`. Inside the macro you can't just evaluate arguments that are passed in (at least I couldn't find a way). Instead you can just pattern match on the AST of your arguments. I was just working on this part in the evenings so when I figured out how to get the information out of the symbol I didn't look back :smile:. I'll see if I can deconstruct a field sensibly and pull out the information. As a bare minium it would require the name field of the field to be a constant.