This commit rewrites the attribute randomize node to be more flexible
with attribute data types, and supports basic blending operations
similar to the vertex weight mix modifier's operations.
The data types are templated to make supporting new attribute data types
in the future simple. This required adding a few new methods to the
Color4f and float3 classes.
I tried templating the operations too, similar to how the attribute
vector math node works, but I didn't think the complexity increase was
worth it in that case.
I still have to get the difference operation working, it doesn't use the
absolute value yet, which is what I think it's meant to do.
Resolves T84970