window: Use GList to store popover structs
window: Use GList to store popover structs

When all popovers are removed on destroy(), if a popover is nested into
(eg. with relative_to within) another popover, the removal of one can
lead to the other being removed while the hashtable is being iterated,
which would lead to undefined behavior in further iterations.

Then, use a GList to store popovers, iterating can be made more resilient
on these situations, and unless on pathological cases there's not going
to be as many of those popovers as to cause performance decreases at the
times those are iterated.

jessevdk/gtk,jadahl/gtk,grubersjoe/adwaita,jigpu/gtk,chergert/gtk,grubersjoe/adwaita,davidgumberg/gtk,alexlarsson/gtk,ahodesuka/gtk,alexlarsson/gtk,jigpu/gtk,grubersjoe/adwaita,jigpu/gtk,jadahl/gtk,jessevdk/gtk,Sidnioulz/SandboxGtk,chergert/gtk,Adamovskiy/gtk,Sidnioulz/SandboxGtk,ahodesuka/gtk,alexlarsson/gtk,chergert/gtk,davidgumberg/gtk,msteinert/gtk,Sidnioulz/SandboxGtk,Lyude/gtk-,Sidnioulz/SandboxGtk,jadahl/gtk,grubersjoe/adwaita,grubersjoe/adwaita,ahodesuka/gtk,jadahl/gtk,jigpu/gtk,Adamovskiy/gtk,davidgumberg/gtk,Adamovskiy/gtk,Adamovskiy/gtk,alexlarsson/gtk,alexlarsson/gtk,jessevdk/gtk,Sidnioulz/SandboxGtk,alexlarsson/gtk,ahodesuka/gtk,Adamovskiy/gtk,jadahl/gtk,chergert/gtk,Lyude/gtk-,chergert/gtk,jessevdk/gtk,grubersjoe/adwaita,jigpu/gtk,msteinert/gtk,msteinert/gtk,Lyude/gtk-,Adamovskiy/gtk,grubersjoe/adwaita,ahodesuka/gtk,Lyude/gtk-,jessevdk/gtk,chergert/gtk,Adamovskiy/gtk,Sidnioulz/SandboxGtk,ahodesuka/gtk,jessevdk/gtk,chergert/gtk,Lyude/gtk-,davidgumberg/gtk,msteinert/gtk,jadahl/gtk,jessevdk/gtk,jadahl/gtk,jigpu/gtk,ahodesuka/gtk,Lyude/gtk-,Lyude/gtk-,grubersjoe/adwaita,davidgumberg/gtk,jigpu/gtk,Lyude/gtk-,davidgumberg/gtk,ahodesuka/gtk,msteinert/gtk,davidgumberg/gtk,davidgumberg/gtk,msteinert/gtk,alexlarsson/gtk,chergert/gtk,alexlarsson/gtk,Adamovskiy/gtk,jadahl/gtk,jigpu/gtk