Dynamic system abstract class
All dynamic problem as the form of: [v; a] = [v; f(x,v,u)]
and its linearise model is:
[dv; da] = [0, I; fx, fv]*[dx; dv] + [0; fu]*du
where dx is the linearised configuration point. Note that the linearised point belongs to the tangential space.
This abstraction allows us to implement ABA dynamics, constrained forward dynamics, linear systems, etc. Both are implement in f(x,u,v). Furthermore we can reuse the numerical differentiation (NumDiff) routines. Indeed, we just need to NumDiff only in the lower-block (see linearised dynamics)