Minor refactoring to GL3Buffer
Refactored GL_TRIANGLES and the other modes into PolygonMode
Added a bit more type safety to RenderTypes.hpp
Changed how shaders work to add macro support and infer version from shader type