This patch adds visualization to the selection in curves sculpt mode.
Previously it was only possible to see the selection when it was connected
to a shader.
In order to obstruct the users vision as little as possible, the selected areas
of the curve are left as is, but a dark overlay is drawn over unselected areas.
To make it work, the overlay requests the selection attribute and then ensures
that the evaluation is complete for curves. Then it retrieves the evaluated
selection GPU texture and passes that to the shader. This reuses the existing
generic attribute extraction system because there currently wouldn't be any
benefits to dealing with selection separately, and because it avoids duplication
of the logic that extracts attributes from curves and evaluates them if necessary.
In the future we could tag specific attributes as dirty when editing in order to
only re-evaluate data as necessary. We may also end up using a separate system
for selection if the optimizations don't fit with the generic attributes, but my
thinking is that we should first optimize the generic process before doing specifics
for selection.
