ENH: Add mesh viewer

Adds a `vispy.plot.mesh` plotter. I tried to simplify `MeshData` a little bit in the process.

Closes #548.

Ready for review/merge.
Regarding the original suggestion: let's say a user loads data from a table with columns (x, y, z, r, g, b, a). In this data, every three rows define a face. Does it make sense that the user will have to do this:
```
vert_colors = table[3:].reshape(table.shape[0] / 3, 3, 4)
meshdata.set_vertex_colors(vert_colors)
```
Rather than this:
```
meshdata.set_vertex_colors(table[3:], indexed='faces')
```
The shape conversion there seems like a rather sneaky/implicit way of describing the indexing format to `MeshData`.