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.
Okay, you're right, both member functions return a null-terminated c-string.
But then again, we use ```c_str()``` for the same uses throughout our code, so I encourage you to change it back.