During assembly, temporarily overwrite the member variable 'step'.

Velocity and acceleration-level assembly is performed taking a small (1e-7) step.
For this value to be visible outside the assembly function, we save (at the beginning) and restore (at the end) the current time step value.
Replace "speed tolerance" with "force tolerance".

- iterative solvers use a stopping criteria based on the norm of the residual. For the speed solver, this is a check at impulse level.
- in principle, this tolerance should be tightened if/when the step size is decreased.
- instead of prescribing the tolerance for a residual at impulse level, we now require the user to prescribe a tolerance at force level (independent of step size).
- internally, the tolerance actually used by the speed solver is obtained by multiplying the user-specified tol_force by the current time step size.
- the default value for tol_force is set at 1e-3
Update demos to use SetTolForce() instead of SetTolSpeeds().
Merge branch 'feature/tol_speeds' into develop