Socket locations are set while drawing the node tree in the editor. They can always be recalculated this way based on the node position and other factors. Storing them in the socket is misleading. Plus, ideally sockets would be quite small to store, this helps us move in that direction. Now the socket locations are stored as runtime data of the node editor, making use of the new node topology cache's `index_in_tree` function to make a SoA layout possible. Differential Revision: https://developer.blender.org/D15874