Use forward compatible contexts

And provide OpenGL 3.0 compatible shaders where applicable.