Generalize canvas3d (motion/release, background color)

These changes are intended to make it easier to use canvas3d for a
wider variety of applications.
- Control over background and wireframe colors: for some applications
  like fluorescence microscopy, black is the natural background color.
- For some applications, calculating the projection might be
  slow. Therefore I added the ability to have the redraw do different
  things on mouse motion and button release (the "crude, fast" version
  could be used for motion, and the "high quality" could be used for
  release).
- Fixes deprecation diagmm -> scale
Use more compact set_source_rgb
Merge pull request #39 from timholy/master

Generalize canvas3d (drawing on motion/release, background color)