WIP: New visuals

Adding some new visuals in this PR. The first is done: `Grid` draws grid lines inside a ViewBox. It works with nearly any type of coordinate system, and transitions major/minor grid lines smoothly as it scales. Have a peek in the `basics/scene/grid.py` example. Will be adding more over the next couple of days.

This also includes some cleanup of the transform methods in `SceneEvent`. I have picked the following coordinate system names:
* `ndc` refers to normalized device coordinates
* `framebuffer` refers to the current physical pixel / fbo being rendered to
* `canvas` refers to the logical pixel system of the canvas
* `document` refers to the current physical coordinate system (units of pixels, and will define `dpi` for unit conversions)

See https://github.com/lcampagn/vispy/blob/new-visuals/vispy/scene/events.py#L103


When the scenegraph is drawn, `SceneCanvas` sets the default document cs to be `canvas.entity`  (or `canvas.canvas_cs` when it is renamed). I considered the name `canvas.document` but I think this might have been confusing..