add Query objects

These were added in OpenGL 2.1 to support occlusion queries. Later versions add
timer and primitive count queries.
replace Query GLenum parameter with a type-safe enum
Merge pull request #2 from rlane/query

add Query objects