Three d render

Together with code I'm about to push to diagrams-povray, the commits below allow rendering 3D diagrams in POVRay.  I think the types would work for other backends which render, such as OpenGL.

I've only implemented a couple of the many sorts of CameraLens and light source which POVRay supports.  I'm happy to add more if someone wants to make fisheye projections in Diagrams, or something.

I have not implemented any support for multiple cameras, as I talked about in [email to diagrams-discuss](https://groups.google.com/forum/#!topic/diagrams-discuss/i_9EGC64Yg4).

All feedback is welcome.

I learned way more about GHC extensions today than I meant to....