fix Plane.projection; Point3D gets equals method and instantiation from Point

o move _uniquely_named_symbol to util; this ended up not being needed but
  is potentially necessary whenever arbitrary_point is used with a named
  dummy; by using an unnamed dummy the need for this routine is avoided.

o rework Plane.projection which was not computing the projection of points
  into the plane of self through the normal

o doctests in project_line now had to be modified for the correected
  projection routine. In addition, handling of the line that is parallel
  to the plane normal is handled and LinearEntity and LinearEntity3D
  behavior is unified so a 3D object is returned (the same applies to the
  when a point is returned).

o  intersections are now returned as 3D objects

o the more robust 'equals' is added to Point3D for comparing unsimplified
  points and is used in the Plane.__contains__ routine

o Point3D can be instantiated from a Point (the z is set to 0)

o tests were updated for the new behaviors and some redundant tests were
  deleted.