Refactor out two main functions from from_mask

This makes way for creating the trimesh.from_mask
Correct from_mask for trimesh

Bit more complicated than a PointGraph due to only keeping valid
triangles. So we need to throw away any unreferenced vertices
Add method to convert trimesh to pointgraph
Fix viewing of trimesh/pointgraph

Legends render correctly now
Add default None to landmark group

Change where we were using 'all' as the implicit key. Passing
None as the key now returns 'all'

Also, make landmarkmanager and landmarkgroup MutableMapping.
Now they act more like dictionaries
Refactor labelling to have graphs

No more plain points!
Add more tojson methods

tojson for Graph, PointGraph and LandmarkGroup