Refactored Shaders to use a union rather than subclasses.
Finished Shader Refactoring.

Made enum to shorten exposed type name.
Exposed Shader loading functions. Loads them to the graphics context too.
Simplified Shaders.
Added Shaders to graphics system.

Added ID3D11InputLayout to Shader, so that vertex shaders have their bound input layout available.
ShaderFactory now builds the InputLayout.
Halfway through rendering a teapot.