Add hints to elements with only floated/absolute children

Commit a3cb61bf:

> - We used to take care of the case where markable elements have no area
>   since all of the children are floated and/or absolutely positioned.
>   For performance I’ve removed that. Let’s re-add it if we find some
>   website that needs it. The old implementation used the computed style
>   for this, which has turned out to be really slow.

Since then I _have_ found such cases. A link in a menu could contain a
span of text floated to the left and an icon floated to the right.

So I’ve re-added support. Best of all, with better performance than the
old implementation; computed style is _not_ used.

It turns out that if the width _and_ the height of an element is 0 (thus
making the area 0, too) it is really hidden. But if only one of the
width and height is 0 (also making the area 0), then it is because
everything inside it is floated and/or absolutely positioned (and that
`element` hasn’t been made to “contain” the floats). Then there’s no
need to check any computed style. Just recursively test each child until
a visible one is found and return its shape instead of the parent.

The reasoning behind choosing the first visible child is as follows:

- It’s the best bet for the cases with menu items I found. We want the
  marker at the beginning of the menu item. The text spans, floated to
  the left, are likely the first children.

- We _could_ add the same hint to _all_ the visible children. But that’s
  a bad idea for a couple of reasons:

  - It would be inconsistent with all other elements. Even elements with
    an area can contain floated elements, which are also clickable. But
    those do not get any hints. (It would be too expensive
    performance-wise to give them hints, for no real benefit.) Therefore
    we shouldn’t do it in this case either.
  - In the found cases with menu items we only want _one_ hint, for the
    whole menu item. We should optimize for the likely cases.
  - It would be unnecessarily complex and slow.