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._`.
I vaguely remember seeing a bunch of user code that imports `MacroSupport`, even though technically they shouldn't. I love the change itself, but have you talked to our users about it? Are they aware of the change and happy with it?