If a plugin/pattern gets garbage collected or freed for any other reason, the related deactivation routine should be called automatically.
Also related signals like "pre/post_deactivation" should be called.
This would "shut down" plugins/patterns the right way, even if self.deactivate() is not called by a developer.
And this also support a correct app shutdown, as all plugins/patterns get deactivated automatically before the app finally exits.