glthread + glapi: many improvements to glthread
This implements everything that I believe was incomplete in glthread.
- Nearly all functions that take a pointer and don't return anything no longer sync.
- Many improvements to the generator
- marshal_generated.c has fewer lines of code
- most complex functions no longer need custom marshalling
- Non-VBO vertex, index, and indirect buffers sync instead of disabling glthread.
- glthread has its own version of VAOs where it can track vertex array states
- glthread is only disabled when it sees glNewList or glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB).
- so that glthread can be validated with test suites
- a few bugs discovered and fixed
- display list support, so that glthread isn't disabled
- upload non-VBO vertex, index, and indirect buffers, so that glthread doesn't sync