- changed the way custom node sockets are handled at several places
- updated the `replaceAll` and `replace` functions used to perform node replacements
- renamed and improved the NodeReplacement [new name] class, which represents a replacement task
- added an arm_version property to all logic nodes, as well as a `get_replacement_node` method (to be overridden for each node)
- added an option to declare a node as obselete in add_node() (useful in order to have the node defined, but out of the menu)
- added classes for UI popups linked to node updates, as well as an operator dedicated to said node update
Thanks to MoritzBrueckner for part of the ground work!