Checkpoint
Replaced plot's 3D depth sort hack with a BSP tree

The following should look as expected now:

 * Intersecting or adjacent surfaces, isosurfaces, lines and paths,
   even if they're sampled at different intervals.

 * Rectangles that aren't spaced regularly on the x,y plane (e.g.
   sideways histograms; the rectangles I plot to debug Dr. Bayes).

In general, the rendering should be robust enough to draw arbitrary
3D scenes, and it still produces high-quality PDFs.

Drawing 3D plots still has the same time complexity and seems to be
about as fast as before. Thanks to the fact that sorting objects by
view distance is an O(n) BSP tree walk, rotating 3D plots in
DrRacket is probably a little faster.

This update also adds direct support for connected lines, and
includes a fix that makes contour lines easy to see, even when
plotted on top of a non-contour-interval surface. (This wasn't
possible before.) Further, the 3D plot area no longer requires a
"grid center" vertex by which to sort grid-aligned shapes, making
the rendering API friendlier, and closer to ready for public use.