Store singleton engine as a weak pointer so it's torn down with the views
An engine is shared between the sidebar and all modules via a common singleton BaseData.
BaseData keeping an extra reference around seemed harmless as we want the engine to live roughly the lifespan of the application. However apparently we need to be cautious over the teardown order as we don't want the engine to outlive the accessibilty interface.