Continued messing with helices.
Add test to expose bug with pure rotary motion.
Avoid zero length glide operation.

If the start and end cartesian points of a simulated cut are the same
(e.g. pure rotary motion) avoid requesting a zero length glide operation
and instead use the translated tool directly.

Need to consider making a central cut tolerance variable rather than
multiple hard-coded constants.
Hack for pure rotary motion path expansion.

Need to consider how to discretize a pure rotary motion given that the
generated rotation will have significantly less resolution than a linear
motion based on how many degrees are travelled. There is no clean way to
map steps_per_mm to steps_per_degree, so either:

1. Add a parameter steps_per_degree for expand_linear
-or-
2. Add expand_rotary for pure rotary motion.

Adding a second function complicates the interface. On the other hand,
adding a parameter that is only occasionally used exposes some
implementation detail to the caller.
Merge branch 'master' of github.com:mythagel/cxxcam