Layout refactoring

Layout refactoring:

- Layout objects are now derived from Container
- Existing containers (GroupBox, Window, Panel, Scrollable, etc) are now DockContainers, which have a singular Content property for its content.

Also includes some updates from corliss/dev branch