Remove usage of GenericTreeModel
Replace on_* method by PyGObject equivalent do_* and use a WeakValueDictionary to keep the couple id, record used as user-data value on TreeIter.
The first commit restricts to the version of PyGObject having GenericTreeModel to be backported to supported series. And the second implements ModelTree without GenericTreeModel.
Closes #13855