Makes MacroSupport more generic.

Creates an old version of MacroSupport for the pre execution code (LegacyMacroSupport).

Then creates a new version of Macro support that provides implicit views for thrift structs. The old version forced the whole trait to be tied to a specific thrift struct this instead just provides implicit methods for any thrift struct. Instead of being tied to MaestroJob this is now also provided as part of `exec.Maestro._`.