ENH: Add mesh viewer

Adds a `vispy.plot.mesh` plotter. I tried to simplify `MeshData` a little bit in the process.

Ready for review/merge.
We shouldn't actually have to pass `"indexed"` because it can be triaged based on the data shape. Also, there were bugs where people could pass incorrectly shaped arrays and still get good behavior (not safe).