Computes a substring of a 
LineString
 between given distances along the line.
 
 - The distances are clipped to the actual line length
 
 - If the start distance is equal to the end distance,
 a zero-length line with two identical points is returned
 
 - FUTURE: If the start distance is greater than the end distance,
 an inverted section of the line is returned
 
 
 
 FUTURE: should handle startLength > endLength, and flip the returned
 linestring. Also should handle negative lengths (they are measured from end
 of line backwards).