Many changes: renders the logo spinning (and textured)

Added:
 - A simple MeshRenderer class and Camera class.
 - Shader and Program classes for shaders and shader programs
 - VertexArrayObject to encapsulate OpenGL VAO
   * The vao is owned by the mesh at the moment
 - Some dirty test code in Application to test the mesh rendering.

Fixed: Matrix::rotation_from_axis_angle() had a typo.

All of the shader programs will use vertex attributes with same names.
All possible vertex attributes are listed in an enum in
VertexArrayObject's header. Currently there are (the name in used in shader):
 - Position  (in_position)
 - Normal (in_normal)
 - Tangent (in_tangent)
 - TexCoord (in_tex_coord)
Added a texture for testing