Big refactor to factor out Geometry class interface

Introduce an abstract Geometry class which wraps up the functionality
and attributes shared by points, meshes, and lines in a single place.
This cleans up various code which was duplicated for the three geometry
types, and paves the way for a generic data set management interface.

Also kill off LineSegments class, since it wasn't doing much for us over
the basic TriMesh.  TriMesh can now have edges as well as faces.