Joint calibration updates

* extracted more general motion capture calibration function out of joint offset calibration function
* motion capture calibration function now uses a quaternion parameterization of rotation internally. I believe this fixed some issues with estimation of the floating states based on marker positions.
* added joint stiffness estimation function which uses newly extracted motion capture calibration function
* added test for joint stiffness estimation
* redid gradient computation in motion capture calibration function: doesn't use any for loops now
* added util/cellMatGradMultMat.m, which came in handy in the new gradient computation and may come in handy elsewhere as well.
* made it possible for the calibration functions to accept any number of bodies with markers, instead always having to pass in exactly two bodies with markers.
* using a fixed random seed for testJointCalibration now. Fixes #389.
* updated documentation

Note that I had to do the stiffness estimation in two steps: first find the floating states given the marker positions of the body closest to the root of the kinematic tree, then find stiffnesses.