DOCUMENTATION: Update the scene schema to use the PBR variables
COMMON: Return a nullptr if we can't read the file
COMMON: Add tangent data for Grid creation
COMMON: Create a default shader for the material shader manager
COMMON/PBR_DEMO: Implement material shaders
PBR_DEMO: Fix implicit truncation
PBR_DEMO: Organization and add argument notations to main()
PBR_DEMO: Update the initial camera position
COMMON/PBR_DEMO: Let lights expose more convenient representations of their values

And internally have a compressed / padded representation used by the shader. Atm, this is
lazily evaluated when it's asked for. However, it might be better to actually update the shader
representation when we change the light values. Instead of doing it lazily.
PBR_DEMO: Allow shaders to opt out of texture usage
PBR_DEMO: Add other materials to the scene