Add offsetTrail and expandTrail.

Building on offsetSegment this allows us to produce the offset of a whole trail (offsetTrail) or path or to do symmetric offsets around a curve capped with an end style (expandTrail).  Inside corners take a path that assume a symmetric offset.  In the future we should offer several clipping options for these inside curves including clipping all intersections and clipping only local intersections (if the original curve has a self intersection the offset may also have a self intersection).  Also not included are custom join and cap styles as these functions will need to change to take into account clipping.