3D scaling, alignment, coordinate lenses

This is my last addition of 3D features before the freeze.  I'll finish the CSG stuff after 1.0.

I'm not sure if the coordinate lenses in 6f82ca4 are a good idea.  I modeled them after their equivalents in [linear](http://hackage.haskell.org/package/linear).  They make writing the scaling in 62d6647 really nice.  Do they undermine type safety and the distinction between points & vectors too much?