Highlight items
Move model change logic out of layout
Allow layout of items without laying out all previous items

These gaps in the layout are filled with rows of assumed sizes and
resolved as they become visible in the layout.