WIP: Rendering materials and texture manager
This is a map that maps the texture paths to the texture objects. This way, textures that already exist will be loaded only once. However, duplicate textures in different folders will not be detected. Also, the same texture with different filtering modes isn't supported (for example, creating a diffuse texture before creating a specular texture with the same file will produce slightly different results that the other way around (only in Vulkan, not in VTK)).
The Material class contains all of the logic for the materials. There is a child class for the Vulkan renderer (and maybe for VTK, depending on how the implementation works out). Right now, each material can have up to eight textures, but not all are selected depending on the render mode (PBR vs classical).
Changes to the VTK surface mesh render delegate class
I replaced the textureMap with a materialMap. This allows the same set of UV coords to be reused across multiple textures (diffuse, normal, etc.).