Move everything related to containerNode to the Container subclass.
This means that any widget that contains content (ex: Button) should extend Container
rather than Widget.
For declarative instantiation, move initial children into this.containerNode too.