First draft of revolute-spherical composite joint.
Add more functions for the revolute-spherical joint:

- accessor methods
- implement functions for caching multipliers for warm starting
- cleanup
Add a demo to illustrate the use of a revolute-spherical joint
Add functions to obtain the Y and Z axes of the coordinate system corresponding to a (normalized) quaternion.
Provide an alternative initialization function for the revolute-spherical joint.

Add more comprehensive comments.
Merge branch 'feature/rev_sph' into develop