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.
 
For orthographic there is not really a concept of distance. In visvis the zoom factor directly determines the width. And for perspective rendering the distance was calculated from the width (basically, it calculates the distance required to make a certain width appear on screen). https://code.google.com/p/visvis/source/browse/core/cameras.py#1122

We don't have to do exactly how it's done in visvis, of course. But it does show that it's possible to combine both in a simple API. BTW I should mention that merging these concepts in a single camera was Robert Scholl's idea and implementation.