tag the children of a tab bar with class names
add DockMode, DockSplitter, and DockPanel
add support for tab icons
drop user data from tabbar tab
take the optional icon and close icon in Tab ctor
remove unneeded configuration from the tab bar
wip
move a couple methods to the private interface
wip
wip
proper max size hint with zero children for BoxWidget and Splitter
wip
update BoxWidgetItem sizing initialization

This fixes a couple layout quirks when widgets are added at runtime when
the box widget is already mounted. It a) ensures the new item sizes are
distributed fairly, and b) ensures that sizes do not jitter unless
necessary when child geometries change.
update layout item initialization

this fixes a couple bugs where cached item sizes were not invalidated
properly when a child is added to an attached splitter at runtime.
update order of member initialization
update variable names
wip
normalize the splitter sizes before returning them.
move private classes to bottom of file
update panel removal code