This patch adds an integer identifier to nodes that doesn't change when
the node name changes. This identifier can be used by different systems
to reference a node. This may be important to store caches and simulation
states per node, because otherwise those would always be invalidated
when a node name changes.
Additionally, this kind of identifier could make some things more efficient,
because with it an integer is enough to identify a node and one does not
have to store the node name.
TODO:
- Figure out how to get the node name from the viewer path, or use node names for the viewer path (revert that part of the change)
- Add more comments in `bNode`/`bNodeTree`