button: Rework size request/allocation code
button: Rework size request/allocation code

- Split out a common function
- Implement hfw properly.

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