Make landmarks ordered dictionaries

This allows us to maintain semantic labelling in landmark
formats like PTS
Python 3+ compatibility by removing iter accesses
Add the pointgraph with correct from_mask

Also added a pointgraph viewer!
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
Merge remote-tracking branch 'upstream/master' into landmark_tojson
Fix the tongue annotations
Merge pull request #404 from patricksnape/landmark_tojson

LandmarkGroup tojson method and PointGraph
Merge branch 'master' into pil_fix