Update layout insets on bounds change

Unfortunately invalidating a layout does not update its section insets. To do that you need to make a new layout instance. This pull request creates a new layout instance whenever the control's size is changed.