testing code for odd object trees

Windows and other widgets are organized as a tree of objects, but not so
simple. It seems that the tree is not well formed, which causes problems
when a window becomes a child of another window. For example, the
function widget_absolute_area() can't work properly.

This branch is an attempt to rewrite a large part of code about this.
Merge branch 'master' into rewrite
tree structure in widgets

Trying to build a real tree structure in widgets, each widget saving a
list of children, and recording its parent in parent field in OBJECT.

This time we just did some simplification in the code, utilizing more
code in the widget parent class. Code in the application library should
be modified next.

The change in this commit is NOT TESTED.
add message dispatcher in widget.c

Now widgets can choose to dispatch a message to its chilren. This should
be useful in panel.c and window.c.

The next step is to change the behavior in register_window(). It seems
to actively repaint all the children of the registering window, using
the old object-tree structure.
add comments about window descriptors

I now understand the object-tree mechanism. It may not need total
rewriting at last.
Merge branch 'rewrite' into merge-with-rewrite

Conflicts:
	widget/widget/widget.c
remove rewritten child list

Also removing the message dispatching function(s).
remove debug output

The code was from commit dee54671.