Magnify

Just a fun demo, although I could conceive of some real-world uses.

Questions:
* Should the transform classes be moved to `scene.transforms.nonlinear`, or should they live here in the demo?
* This implements camera subclasses as a way to insert the transform at exactly the correct spot in the scenegraph (it needs to be added to the beginning of `viewbox.scene.transform`, which is set by the camera). Would it make sense to just add an option to the base camera class that allows addition of any arbitrary transforms so that subclassing is not necessary here?

Notes:
* Use mouse wheel to change the lens magnification
* This is not a post-processing gimmick; the magnification is implemented as a nonlinear transform. 
* There is a bit of noise apparent in the grid line and image; this should be corrected by adding multisampling to those visuals.

![image](https://cloud.githubusercontent.com/assets/1942359/4583956/999380e4-4ff6-11e4-8292-75eed4f5c0be.png)

Just omit it. Since there is no more local storage, dtype does not have to be fixed. You can replace the above with `gloo.Texture2D((res, 1, 1), 'luminance')`. Or even omit luminance, since that would be derived from the shape.