Use a single ".selection" attribute instead of multiple. This
attribute can be on either the point or curve domain and can have
either boolean or float type. Some tools create boolean selections,
other tools create float selections. Some tools "upgrade" the
attribute from boolean to float.
Edit mode tools that create selections from scratch can create boolean
selections, but edit mode should generally be able to handle both
selection types. Sculpt mode should be able to read boolean selections,
but can set the type to float.
Theoretically we could just always use floats to store selections,
but the type-agnosticism doesn't cost too much given the existing tools
for dealing with it, and it should allow other optimizations in the
future, like different ways to store boolean attributes.
Notes:
- In the future, the implementation of float_selection_ensure can be replaced by a generic "convert attribute" function.