Deprecation cleanup
This branch moves to requiring 3.22 constructs, removes some dead Python 2 compatibility code, and most importantly moves our "widget" constructions to use GTK+ templates and resource loading.
This branch moves to requiring 3.22 constructs, removes some dead Python 2 compatibility code, and most importantly moves our "widget" constructions to use GTK+ templates and resource loading.