Fix UF-97: Provide extension hooks for HAL to customise the workbench layout & panel presenters

- Introduce WorkbenchLayout SPI 
- Added two custom PanelTypes for HAL: SplitLayout and LayoutPanel
- Allow for PanelDefinition parent traversal
- Added PanelPresenter.selectPanel() API