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).

Yeah, `extent` does. (`coordinates` should always be `'data'`, meaning in data coordinates.) The commented code figures out what position changes `dx, dy` and scalings `xprop, yprop` would be necessary to map the data into a unit coordinate system, which is why for a whole-axis image it's `dx=dy=0., xprop=yprop=1.`. But it looks like `from_mapping` can do this math for me, which is awesome.