Added RetimeTrajectory function that fall backs on linear smoothing.

Changed RetimeTrajectory to first attempt ParabolicRetimer, and fall back on LinearTrajectoryRetimer if that fails.

This is because ParabolicRetimer can fail in certain situations because it smooths the original trajectory slightly.  LinearTrajectoryRetimer will always work, but produces a trajectory that must stop at each waypoint.
You should check the return code on `LinearTrajectoryRetimer`. In theory, this should never happen if the input path is feasible. But it's better to be safe than sorry.