Replaced OpenGL 3 function calls with their 2.1 extensions

On Linux we can make a 3.3 context with backwards compatibility with previous extensions. On OSX we can either create a 3.2 context with /no backwards compatibility/ or we can create a 2.1 context. Since we're still using some 2.1 functionality which hasn't made it into 3, we need to use a 2.1 context on OSX, so we use one everywhere to keep things maintainable.

In the longer term the best solution is to move to pure OpenGL 3.3 everywhere.