preview: ensure signals/sources are removed upon destroy
Some of the objects (e.g. the overlay) will outlive the preview, so we need to disconnect signals from them when the preview or one of its subcomponents are destroyed.
Also, we were not properly cleaning up some sources upon destruction of the nav bar controls.