Updated for GHC 7.8
Added Point.hs

Adds points ala point.cpp/hpp and point.hsc. The various point types are unified via
The Point2/3 typeclass and a data family that allows some parametricity over the various
point types. Most of this is boilerplate, so it might be helpful to generate this
via template haskell instead of doing it all by hand. It's very error prone.
Switched CVElemT into a closed type family.

This would have been useful a long time ago, but in any case the change
is here now. This makes this library require GHC7.8.