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._`.
Not many people to talk to atm. I'm not intending to add new features to the old API and ideally remove it soon (dependent on how the current remediation activities are going) so people using the old API should not have a reason to upgrade Maestro unless they make the change. If they are affected it is a pretty simple fix.