Cleanup the dock container implementation.
Wip commit. Add layout visitors to manage dock layout complexity.