WIP: mplexporter / pyplot interface

The todo list:

* [x] Translate Cyrille's code to vispy submodule + example.
* [x] Make text display.
* [x] Make `Line` based on `Visual`.
* [x] Make `Marker` a visual.
* [x] Complete support for marker properties.
* [x] Change to use `SceneCanvas`. This should facilitate:
* [x] Deal with different plotting coordinate systems.
* [x] Deal with multiple axes.
* [x] Add image support.
* [x] Complete text display options, with proper scaling and location.
* [ ] Improve image visual quality and fix view transformation.
* [ ] Complete support for line properties.
* [ ] Improve line quality (agg).
* [ ] Make it faster (it's *very* slow currently).
* [ ] Add tests.

Things that would be nice, but not 100% necessary to have things working (and probably difficult):

* [ ] Make collections work (efficiency).

I don't think the format of `extent` is correct for use in `from_mapping`:
```
image.size: (495, 114)
extent: (-0.5, 699.5, 159.5, -0.5)
vb.camera.rect: <Rect (-0.5, 159.5) (700, -160)>
```
If I use instead `[extent[::2], extent[1::2]]`, then the image fits the viewbox but is upside-down. This should be fixed either by un-inverting the y-axis of the view (`viewbox.invert_y = False`) or by using different extents (`[[extent[0], extent[3]], [extent[1], extent[2]]]`). I think it would be helpful of we had a plot line to draw on top of the image as a coordinate system reference..