Move comments to TODO list.
Improve interface for path expansion.

Correct interface to avoid redundnant parameters and instead return an
object with information about the path.

Update Machine and tests as appropriate.
Merge branch 'master' of github.com:mythagel/cxxcam
Trigger low angular resolution fault.

Parameters changed so as to fail the low angular resolution fault so it
can be adequately corrected.

Also correct the output file written by this test case.
Add test case for duplicate point in path.

While writing another test case this fault was noticed. The faulty
comparison operators for point_3 and vector_3 allowed this fault to do
undetected.

The fault is not actually related to moving backwards, but the faulty
comparison operators themselves - which rely on normal double comparison
when such comparisons are inappropriate causing the check for an exact
end point to fail and a point that is duplicate to within acceptable
tolerances to be added.
Rotate to full 360 degrees
Improve rotary path expansion.

Implemented expand_rotary and in doing so, implemented primitives to
measure path length for rotary axes in a pseudo cartesian system as
defined for pure rotary motion planning.

This then allowed the code for nearly-pure rotary motion (large angular
motion combined with a small linear move) to be improved. Now the path
is oversampled rather than undersampled in these circumstances.

This has the unfortunate side-effect of making the tests which exercise
this behaviour run unbearably long.

This is a sort term situation as the simulation code is scheduled to be
improved by removing the small per-step subtraction operations with a
combined tool path union operation and a second simulation step that
will operate over the entire path.