Converted Location3D to an interface, Map3D to a generic.

Point3D is a reference implementation to be used as-is or extended.