Tweak the layout algorithm slightly

- optimise 'fits' when looking at groups with a known flat_width
- once we have decided to be flat, then all sub-groups are flat