Add ARB_program_interface_query function calls and convenience methods

Fixes #267

I've done some rough testing, so it (and especially the convenience methods) should be working fine.
https://www.opengl.org/wiki/GLAPI/glGetProgramResource suggests, that ```GL_NAME_LENGTH``` includes the terminated null-character, so that means you have to check for ```1``` instead of ```0``` and I'm currently not sure whether the resize of the result vector to ```nameLength + 1``` is correct (under each of the assumptions).