IterativeParabolicTimeParameterization now ignores virtual joints.

When checking if all joints are single-DOF, it accepts multi-DOF joints only if they are
also virtual.

Previously it would fail on my planned trajectories which involve only single-DOF joints plus the virtual "world joint" which I needed to include in the planning group in order to visualize the plan properly.  The virtual joints don't really exist, so I think this should be fine.

I have run this with my robot model including the world joint and it seems to work fine.