A good chunk of refactoring.

- Added in Shader class and now distinguishing between VertexShader and FragmentShader
- Reintroduced some naming conventions for members of a class
- Some more minor general refactoring