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.
 
This can be simplified and improved (e.g., accepting strings) as:
```
from ...color import Color
...
        value = Color(value).rgba
```
Or `tuple(Color(value).rgba)` if you really want it to be a tuple, but I'm not sure why you would.