It's possible to have a zero-cell section with only headers and footers. (For both tables and collections) We should update our definitions of "emptiness" for both models. Follow-up to #48 **Empty means:** - Zero cells (empty array of `*CellViewModel`s) - `nil` header view - `nil` footer view **Changes needed:** - Update `isEmpty` on section models - Handle empty sections accordingly. e.g., return `0` in data source methods when appropriate (mostly applies to single-section models)