Add support for fetching uniform locations.
Bump the required OpenGL to 3.3 and add checking for that.

If hardware can support 3.2 then it should be able to support 3.3 as well.
Also, mesa drivers support 3.3 at best at the moment.