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
Fix greyscale PIL images

Slice off the channel for greyscale images
Add test for this as well
Merge pull request #404 from patricksnape/landmark_tojson

LandmarkGroup tojson method and PointGraph
Merge branch 'master' into pil_fix
Merge pull request #406 from patricksnape/pil_fix

Fix greyscale PIL images
Move import files into input module inside io
import_auto is gone
Remove import_auto tests, meshlab method gone
Refactor __init__

Expose input methods from input folder