signal generator: must mixin LabModelerMixin before adding event types.

Without this fix, model.hasPlayed is never set correctly. This is because model.hasPlayed is set by an event listener added by PlaybackSupport during the mixin step. However, adding event types blows away periously-added listeners.

DispatchSupport should be rewritten to avoid this behavior, using something more general than d3.dispatch.
signal generator: add support for CODAP embedding

[#82005520]