atParam, segOffset, and reverseSegment for open segments

Once we merge in the new parametric type classes we can make instances
for closed segments as well.
Enveloped instance for open segments
splitAtParam, arcLength, and arcLengthToParam for open segments
fix up the rest of D.Segment --- most is for Open segments
start on generalizing D.Path for closed/open trails

  * split PathLike class into two classes, OpenTrailLike and ClosedTrailLike