widget: Free the controller list on finalize()
If this is done on dispose(), the widget may be destroyed (and its controllers list NULLified) within _gtk_widget_run_controllers(), causing warnings/crashes when it just tried to hop on the next controllers. Freeing the controllers here should be a safety net for implementations, so it also makes sense to do this late. The widgets that choose to free their controllers on dispose can still do so, and get _gtk_widget_remove_controller() called for these as an indirect result.
Showing with 10 additions and 10 deletions