Add Caramia.Shader.

Now we can compile and link shader programs.

Also added Caramia.Math for matrix and vector types so that they can be set to
uniforms.

There is no uniform or attribute location getter of any sort. I'm investigating
if I need to add any because I would prefer that shaders always set the
locations explicitly.