Fix screen cast widget crash and get rid of some deprecation warnings
Didn't attempt to port away from dialogs, but changed hide/show to set_visible/present, depending if it was a plain widget or a widget that happened to be a window.
The crash tends to first look like
GLib-GObject-CRITICAL **: 13:02:51.686: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
Gtk-CRITICAL **: 13:02:51.686: gtk_widget_get_first_child: assertion 'GTK_IS_WIDGET (widget)' failed
Gtk-CRITICAL **: 13:02:51.686: gtk_widget_get_first_child: assertion 'GTK_IS_WIDGET (widget)' failed
Gtk-CRITICAL **: 13:02:51.686: gtk_list_box_get_selected_rows: assertion 'GTK_IS_LIST_BOX (box)' failed
Gtk-CRITICAL **: 13:02:51.686: gtk_list_box_get_selected_rows: assertion 'GTK_IS_LIST_BOX (box)' failed
GLib-GObject-CRITICAL **: 13:02:51.686: instance with invalid (NULL) class pointer
and not crash until later, perhaps due to memory corruption or something. The commit here fixes these warnings, and didn't see the crash after that but who knows.