COMMON: Fix conflicting include guards
COMMON: Inline StructuredBuffer accessors
LIGHTING_DEMO: Break cbuffer constants into perFrame and perObject
LIGHTING_DEMO: Create application-side buffers for the lights
LIGHTING_DEMO: Assume only one directional light. Therefore store it in a cbuffer instead of a StructuredBuffer
COMMON: Create a class for managing lights
LIGHT_DEMO: Move light logic to use the LightManager
COMMON: Create Camera method to get the current camera position
COMMON: Implement GeometryGenerator::CreateBox and CreateSphere
LIGHTING_DEMO: Move materials definition to a Common scope
COMMON: No need to track id

Since its index *is* the id
COMMON: Add Material handling to Model
COMMON: Fix typo
COMMON: Move all light functions to world space

After battling for too many hours trying to get view space to work, I just
gave up and went back to world space.
LIGHT_DEMO: Convert the shaders to use the new light functions
LIGHT_DEMO: Convert application code to use world space lighting
LIGHT_MANAGER: LoadShaders after GameStateManager has been intialized

So we can create the correct buffers
LIGHTING_DEMO: Set the primative topology
LIGHTING_DEMO: Utilize the GeometryGenerator instead of creating the vertices/indices manually