Gl next query

To get the discussion going about gl query objects.

(Previously named QueryTimeElapsed, I renamed it to QueryTimeSwapped here in order to make the swapping mechanism more explicit.)
Stop must be called?

I assume stop() was renamed to end, which feels right. Let's make sure the error messages don't complain too much there. Also, do we need to throw an exception when this happens? It seems like the zero return value already handles the error state.