This is the initial implementation for the volume grid sockets that has been discussed during the November 2023 geometry nodes workshop. It adds initial support for passing volume grids around in sockets. Furthermore, it adds two new nodes. Both are initially hidden under the "New Volume Nodes" experimental option until we have a few mode nodes. * **Get Named Grid**: Gets or extracts a volume grid from a volume geometry based on the grid's name. * **Store Named Grid**: Puts a volume grid back into a volume with a name. `SocketValueVariant` is extended to support grids besides single values and fields. Next steps: * Implement grid socket shape and inferencing (currently, they just look like single values). * Add implicit conversions between grid types. * Implement nodes that operate on the grids (#116021). * Improved spreadsheet and viewer support. Links: * https://devtalk.blender.org/t/volumes-in-geometry-nodes-proposal/31917 * https://devtalk.blender.org/t/2023-11-06-geometry-nodes-workshop-notes/32007#volumes-3 Co-authored-by: Jacques Lucke <jacques@blender.org> Pull Request: https://projects.blender.org/blender/blender/pulls/115270