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.
Should there be a shortcut if nameLength indicates that there is an empty string stored?