Fix dimensionality of Au

Previously, we implemented:

Au * Au -> Au
Au / Au -> Au
Au % Au -> Au

... which are inconsistent. It should be:

Au * Au -> SquaredAu
Au / Au -> i32
Au % Au -> i32

or:

Au * i32 -> Au
Au / i32 -> Au
Au % i32 -> Au

I picked the latter.

Also, the multiplicative identity does not make sense
when multiplication take two different types.
Remove min/max functions from util::geometry. Use std::cmp instead.
Add font-size absolute size keywords. Fix #3417.

Relative size keywords are still missing:
https://github.com/servo/servo/issues/3423
Handle generated content with `display: block` correctly during flow
construction.

The iteration was incorrect here. Although it accidentally worked
before, it will cause problems when we have incremental style
recalculation.

The `after_block_iteration` reftest will become interesting once we have
incremental style recalc.
Merge pull request #3399 from pcwalton/fix-generated-content-iteration

Handle generated content with `display: block` correctly during flow
Merge pull request #3424 from SimonSapin/font-size-absolute

Add font-size absolute size keywords. Fix #3417
script: Use atom comparison in more places, especially for attributes.

75% improvement in style recalc for Guardians of the Galaxy.