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.
 
I'm ok with leaving this for a future PR. I hope to have time for this, but I can't promise. If it does not make it into the release, that's o, scince we don't consider `vispy.scene` API stable anyway.