Simplify camera / viewbox system

This proposal simplifies control over sub-scene transforms by introducing a new `Viewer` class that is a helper to ViewBox that manages `viewbox.scene.transform` and handles user interaction. This results in several simplifications:

* `SubScene` loses most of its code
* No need for `PixelCamera`, `UnitCamera`
* Removed `SceneEvent.resolution`
* `ViewBox` / `SubScene` transform handling is much simpler because `Viewer` is not an Entity

Cameras are still supported via the `CameraViewer` class, but this is not fully implemented yet. 
I have only updated the `scene/grid` example, others will follow after initial review.
 
even though it's slightly less efficient/accurate in some linear algebra calculations (not sure if this is one), you can use `numpy.linalg.solve` here to avoid the additional dependency.