Added indexed vertex buffering
Do all OpenGL deletes when entering managed GL context
Use single, cached VAO for all fullscreen compositing passes
Stop using shared GL contexts

There are too many limitations; e.g. two contexts with different
versions or profiles can't share. Also, there's no guarantee that
sharing will work on a given platform. Lastly, it doesn't matter
much, because all pict3d snips share one context anyway.
Added `pict3d-legacy-contexts?` parameter
Insert OpenGL API types directly into the type environment

It had always taken 5 minutes to expand the "typed/opengl/typed.rkt"
module, to generate all the contracts. A user reports that compiling
now eats all his RAM, and this was the most likely culprit.

Typed programs that (require typed/opengl) will only see a performance
improvement. (On my machine, OpenGL API calls take 20% of the time
they used to.) Untyped programs will now see FFI errors instead of
contract errors when they send wrongly typed data to OpenGL. I'm
not sure whether this is a problem.
Improved scene rebalancing and shape extraction; added synchronous option for pict3d-canvas%