Second batch of changes to the tab-layout for inclusion into McCLIM: These changes move all STACK-LAYOUT and RADIO-LAYOUT mechanisms directly into the TAB-LAYOUT. While the former two may still be useful to someone, the resulting TAB-LAYOUT does not depend on them anymore. This new codebase is perhaps less modular than the original layered version. However, it fixes a conceptual bug of the original design, namely that the child panes of the TAB-LAYOUT-PANE were not actual, direct children of it. Instead there was the RADIO-LAYOUT sitting between TAB-LAYOUT-PANE and pages. This made the operation "return the tab-layout this pane is a page of" needlessly complicated. In the new implementation, this operation is just SHEET-PARENT. The new design is also what Gtkairo would have to implement in its subclass anyway, so now we get the chance to move all logic concerning the sheet hierarchy directly into the abstract superclass instead of reimplementing it in the subclasses. Other changes: - Added a setf method to TAB-LAYOUT-PANES which allows panes to be added, removed, and reordered using the same function. ADD-PAGE is still available as a convenience wrapper.. - Removed REMOVE-PAGE-USING-PARENT again, since SHEET-DISOWN-CHILD now serves the same purpose. User code can still use REMOVE-PAGE. Also added a generic function INTERNAL-CHILD-P that TAB-LAYOUT subclasses for other frame managers might want to implement. - Moved the slot backing TAB-LAYOUT-ENABLED-PAGE into the superclass, which now maintains it. - Improvement: When the current page is removed, drop to the page next to it, if any. Previously focus would always jump to the last page (at the end). - Changed the default presentation type to be TAB-PAGE. - Allow arbitrary initargs to be passed through WITH-TAB-LAYOUT. - Added a generic function note-tab-page-changed for subclasses to implement, which informs the layout about changes to tab-page-title and -drawing-options. - Reworked the tab-layout-example for inclusion into McCLIM.