Remove reliance on internal structure for emptiness test

By using `isEmpty` instead of querying the internals of the collection we can reduce the coupling between the collection's data-structure and the view.

This is the start of something bigger, but is fine standalone, so I thought I'd do a cheeky Friday afternoon PR.