skeleton of new header for tab widget

Trying to make the tab header like the sheet selection tab in
LibreOffice Calc. Headers of all the tab pages will make up a whole
tab_header widget, which will check cursor position on mouse press and
select the tab header under cursor.

For this new widget, the button in tab_page widget is removed, and now
tab_page is a derived widget from panel. Panel is modified for being
inherited beforehand in master branch.

As the button in tab_page is removed, it is temporarily not supported to
change font for individual header of a tab page. This may be added back
by changing the page_head in tab_page widget into a label.
tab header development commit
tab header development commit

Added tab header to build system and external header files. Added a
widget testing program test_tab_header.

Clicking event is not implemented yet.
clicking event of tab_header

Decrease brightness by half for unfocused headers.
tab_header development commit

tab_page is rolling back to using macro for struct inheriting.

panel is using a default width and height of 400. This should be
meaningless, but not wrong. It's not hard-coding, as an rc file can
override this if desired.

tab is going to be like a "shell" widget, as most of the job including
transfer of tab pages are given to tab_header.
bugfix in tab_header

Make the panel widget repaint with its children when focus changed. The
tab_header is now working.

Changed color scheme in tab sample program to demonstrate with a better
UI.