Start of a software implementation of Caustic.

Done as a toy project, for when I'm bored with other projects. Currently I have rendering of point working, but the pipeline will need to be modified to conform to the standard rasterizing procedures.
Add translation from data format to the equivalent type class
Don't read or write past the type's data count is ShaderBuffer
Point rendering is mostly done

Still missing z-buffering and I need to change the colour output format
for fragment shaders
Improvements to ShaderBuffer

Reading smaller vectors than what’s in the buffer isn’t a problem
anymore
Change fragment shader output to a Vector4f
Implement get and set window title, size and clear color
Fix integer normalization
Implement depth buffering and clamping
Line drawing is mostly complete
Use fewer vertices for the cuboid wireframe model
Remove normals from wireframe cuboid
Fix clipping of lines completely outside the view
Add uniform uploading to programs
Fix improper clipping of lines completely outside the view
Add skip() to shader buffers
Merge branch 'software-renderer'