Made Point2 templated, and added conversions among several of the classes