ListView: Rework handling of cell state for rendering

Despite my previous attempt in commit ee28b59d, the cell state rendering
still wasn't right: either widget state would be lost, or the selected
state for one cell would spill over to the next ones.

So now, whether a cell is selected is stored in the new
CellContext.Selected property. CellContext.State is now only a getter,
calculated from other properties (only Selected for now).
In addition, cells are now responsible for setting the right
StyleContext.State, by merging CellContext.State into it, along with any
other adjustments.

To help clear things up, the redundant ColumnCell.Render overload that
took a StateFlags parameter is removed.
ColumnCellRating: Follow GTK theme colors when selected

Merge the cell state into the overall widget state before selecting the
color to use for rendering.
TextBlock: Follow the overall widget state when rendering

Make sure the text uses the right color, by setting and using the
correct StyleContext.State. This fixes the text color when the window is
not in the foreground (the "backdrop" state).