repair widget_absolute_* functions

These two functions, widget_absolute_area() and
widget_absolute_coordinate(), had a problem that makes the window-tree
structure behave strangely. The problem is that they continue the
calculation of absolute values even a window is encountered. From the
sample code, it is known that windows never use relative coordinates, so
these two functions should stop at the first window.

This problem made me think that the object-tree model is problematic,
which now proved to be my prejudice. The object structure actually form
a correct multi-tree.

The toplevel_child.c sample program is adapted to illustrate the case
where a button is nested deeper inside the widget tree.