Rename renderedRowRange to visibleRowRange

We only render visible rows now, so this makes more sense.
Render selection fragments on opaque lines

Because lines are opaque on the GPU for sub pixel antialiasing, the
lines obscure the selections which were formerly rendered behind the
lines. This commit renders selection fragments *on* each opaque line
layer so the selections look correct again. Still needs cleanup and
optimization.