This also fixes a bug that I introduced with my GTK 4 porting: the
promotion type selector dialog would always display pieces in the color
of the first player to promote a piece, but it should always change
color to match the current player.
Note that I declared all the GtkChild widgets as unowned due to
vala#1121, which I discovered while working on this.
I probably should have removed GtkDialog.run() use first, in a separate
commit, but I didn't and now it would be a lot of effort to split it
out. So here it is: one big GTK 4 megacommit.