Use forward compatible contexts and provide OpenGL 3.0 compatible shaders where applicable