Currently, the random attribute node doesn't work well for most
workflows because for any change in the input data it outputs
completely different results.
This patch adds an implicit seed attribute input to the node, referred to
by "random_id". The attribute is hashed for each element using
the CPPType system's hash method, meaning the attribute can have any
data type. Supporting any data type is also important so any attribute
can be copied into the "random_id" attribute and used as a seed.
The "random_id" attribute is an example of a "reserved name" attribute,
meaning attributes with this name can be used implicitly by nodes like
the random attribute node. Although it makes it a bit more difficult to
dig deeper, using the name implicitly rather than exposing it as an input
should make the system more accessible and predictable.
Finding a better name than "random_id" would be nice, but a bit tricky too.