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


For example, to make our lives easier in the future, this file needs:

1. Copyright stuff at the top.
2. Explicit imports instead of `*`.
3. At least one-line description of the module at the top in a block comment.
4. An `__all__` including the names of the things that we want to show up in the docs.

I had to do this in a bunch of places to get the docs working, so I think we should work to only merge code that is in that state to save us work in the future, and save us from having broken docs in the meantime. Also, you'll need to add a `plot.rst` file like the one for `color.rst` in the `doc/` root.