fix kernel-style list_for_each macro

The macro was not bracketing its arguments in the body.
add two functions to flowbox to support tab widget

A list saving pointers to sub-widgets is added to support the reordering
operation.
add find-index functionality to list structure

Also removed commented-out sort function.
fix incorrect list usage in flowbox

Only pointers to sub-widgets are saved in the list, so we should
dereference once before treating the data in list_node as pointer to
sub-widget.
allow passing NULL d'tor to object_tree_delete
automatically set bounds for button
allow setting color for panel widget
button caption uses strdup to support const origin

For this reason, button.c should conform to POSIX.1-2001.
fix set_bounds() function for panel widget

It now supports the "-1 ignoring" function which every other widget has.