Ensure TcM plugins are only initialised once per module
This MR ensures we keep TcM plugins (typechecker plugins, defaulting plugins and hole fit plugins) running all the way through desugaring, instead of stopping them at the end of typechecking.
This allows the plugins to be invoked by the pattern match checker (during desugaring) without having to be repeatedly re-initialised and stopped, fixing #26839 (closed).
In the process, this commit modifies initTc and initTcInteractive, adding an extra argument that describes whether to start/stop the TcM plugins.
See Note [Stop TcM plugins after desugaring] for an overview.