extract PDController helper class
Fixed https://github.com/poftwaresatent/kinematic_objectives/issues/6
"move model out from the compound, pass it into methods where required"
Fix https://github.com/poftwaresatent/kinematic_objectives/issues/12
and https://github.com/poftwaresatent/kinematic_objectives/issues/9
"use composition instead of multiple inheritance for compound aspect
of demo/interactive_compound_objective" and "get rid of preUpdateHook"
Fixed https://github.com/poftwaresatent/kinematic_objectives/issues/7
"create single-step priorization interface, and make the block-wise
one use that" BUT temporarily disabled some of the achievability
analysis in the process. Will need to add (non-projected) Jacobian
SVDs to the mix at the proper place, and distinguish 4 (or even 5!)
types of dimensionality:
  0 - (optional: number of rows in the J)
  1 - SVD-based dimensionality of J
  2 - regularized dimensionality of J
  3 - SVD-based dimensionality of Jbar
  4 - regularized dimensionality of Jbar
Basically the loss of dimensionality stems from #1-#4... or maybe
better #0-#4 because that should better reflect what the user
intended. Then again, #0-#1 is a good indication of kinematic
singularities, which is kind of nice to separate out from the
algorithmic ones.