apparently templated classes need all functions to be inline, otherwise unresolved symbols
macro for switching between matrixf and templated
few functions that were missed
opengl can now compile with ubo buffer objects similar to cbuffers on dx side.
cleaned double up of data from both sides, gfxhandles only need to use the desc info instead of holding onto its own.
Adds the ground work for geometry shaders
Expands shaderData and gfxShader to allow for more shader types
note: when building a GFXShader in source you have to call setShaderStageFile with the shaderStage and the filepath for that stage.
Once we add compute shaders this will become more apparent as compute shaders are a stage of their own and do not require vertex and pixel files whereas other shaders sometimes do.
Refactored DX Shader compilation and reflection to be more similar to opengl
Added support for more than 1 const buffer per shader stage.
This is boilerplate code, no functionality yet, that will be added in further commits. Though this builds without errors do not try and run it at this point.