Another possibility to avoid rendering all these checkboxes would be to use a `data-selected` attribute on each node.  This would be lightweight to set/clear when "select all" and "deselect all" are clicked.  We could then just render the checkbox when the contact appears on screen.  Clicking on the checkbox would simply set/clear the `data-selected` attribute.