AdwClampLayout measurement fixes

This is a rework of AdwClampLayout measurements to make them consistent (not contradictory) which came out of me debugging various issues seen in Tuba (cc @GeopJr) and other apps, and gaining, uh, extensive experience in the intricacies of layouting and measurements.

This is meant to be used together with all of my other work on layout and measurements this cycle, but is independent of it.

Here's a small test case (based on the ones from #347 (closed)):

<?xml version="1.0" encoding="UTF-8"?>
<interface>
  <object class="GtkWindow">
    <child>
      <object class="GtkBox">
        <property name="orientation">vertical</property>
        <child>
          <object class="AdwClamp">
            <property name="maximum-size">602</property>
            <child>
              <object class="GtkLabel">
                <property name="wrap">True</property>
                <property name="max-width-chars">30</property>
                <property name="wrap-mode">word-char</property>
                <property name="label">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</property>
              </object>
            </child>
          </object>
        </child>
      </object>
    </child>
  </object>
</interface>

If you run it under recent GTK that has gtk@3e7ec4f9, you'll see a bunch of warnings about broken measurements. This branch fixes them.

I hope the commit messages are explanatory enough — other than the ceil/floor change, which would require an essay-length explanation to justify (which I'm totally willing to produce if you'd like me to).

See also gtk@b4e25a21

Merge request reports

Loading