This extracts the construction of the `SocketValueInferencer` out of `SocketUsageInferencer`. This leads to better separation of concerns and gives the caller more flexibility. In the future, I especially want to get information about which group input values were required to determine the usage of other group inputs. This might help with caching the inferenced values. Pull Request: https://projects.blender.org/blender/blender/pulls/147352