OBJ_LOADER_DEMO: Set the texture color to white if there is no texture
OBJ_LOADER_DEMO: Move the console to the bottom of the screen
OBJ_LOADER_DEMO: Create settings to change the directional light colors and direction
PROJECT: Clean up un-used libraries
COMMON: Ensure correct operator evaluation order
OBJ_LOADER_DEMO: Add the sponza scene as a resource for the demo

And remove the grass.dds file
COMMON: Add const references for the arguments where we can

Less copy constructor
OBJ_LOADER_DEMO: Move material id to its own GBuffer

Since the albedo gbuffer was UNORM, all the material ids were being
clamped to 1. Instead of making the albedo buffer bigger, I chose to
shift the albedo to R11G11B10 and then create a R16 buffer for materialId.
This gives albedo a little bit more precision and gives materialId plenty of room
for lots of materials per frame in the future. The downside is a bit more bandwidth
and 16 bits more storage per sample.
OBJ_LOADER_DEMO: Fix the post-build resource file copy path
COMMON/OBJ_LOADER_DEMO: Clean up vector push_back memory management

Before I had been doing a push_back with an empty object and then getting a pointer to
the last element of the vector. While this worked, it was hiding some byte alignment issues
as well as not being very clean looking. I opted to either eat a copy construtor or use the
heap. If heap becomes a problem, I can look into a fixed width memory-pool
COMMON: Ensure Model is 16-byte aligned

Since DirectXMath object require that
HAFLING/OBJ_LOADER_DEMO: Flag unused arguments

For compiler warning level 4
OBJ_LOADER_DEMO: Move debug geometry generation and light buffer generation after the scene has loaded

This gives us the opportunity to scale both of these based on the scene size
OBJ_LOADER_DEMO: Scale the scene until the largest dimension is near 500 units

This makes the camera easier to control as well as makes the clip planes relevant
for every scene.
COMMON: Fix formatting
COMMON: Use a simpler and smaller hash_combiner

The other implemention required a long long
COMMON: Don't bother passing references

Since we're going to copy them anyway. Plus the usages were passing temporary variables
so the references weren't valid anyway.
OBJ_LOADER_DEMO: Remove unused variables
OBJ_LOADER_DEMO: Create instances of the matrices so we don't cause an extraneous copy constructor
OBJ_LOADER_DEMO: Restore the max materials per frame to 2000