glthread: better compile time, Core profile perf, user pointer tracking + fixes & cleanups
Most changes are very simple.
Major changes:
- Display lists supported. (merged already)
- The functions for tracking states are not executed in the Core profile. (merged already)
- marshal_generated.c compile time is reduced 3x
- Vertex array user pointers are tracked accurately (if EXT_dsa and ARB_vertex_attrib_binding aren't used)
- Draw calls won't sync glthread if all user pointers are unbound or the vertex attrib arrays are disabled.
Future work (partially done but not here):
- Upload non-VBO vertices and indices.