Add several ChCoordsys transformation methods.

These functions parallel those for ChFrame and provide support for transforming vectors (points or directions) and coordinate systems to and from the parent coordinate system.
Fix bug in initialization of the revolute-spherical joint.
Immediately cache the frame passed to ChBodyAuxRef::SetFrame_REF_to_abs()

Without this, calling GetFrame_REF_to_abs() before a call to Update() occurs, returns the identity transform.
New >>=  operator for the ChFrame and ChFrameMoving . This supersedes the %= operator, that will be considered deprecated. This is more coherent with the fact that there is already a binary operator >>.
This is part of a process for harminizing the Chrono::Engine API, where all 'reverse order' transformations (in quaternions, frames, etc. ) will be represented with the >> operator, as well as the direct transformations are represented by * operator.
Better comments for quaternion constructors.
New constructor for ChMatrix33 , from axis and angle of rotation. Keeps things shorter, less typing when creating rotation matrices.
New method to set a rotation matrix from angle of rotation and angle of rotation. This previously required too much typing, typically one had to create a quaternion, set it from angle and axis, and create the matrix from the quaternion.
IMPORTANT change in ChQuaternion API.  Previously, the * operator was used for doing element-by-element product, that was almost useless. We assume that no one used it. So, now we use the * operator to perform the true quaternion operator, as it was done with % operator previously.
The old % operator is made deprecated, then.
Also, we added the >> operator and its in-place >>= operator, to do the product in 'specular' order, i.e. A*B is the same as B >> A.
This makes things more coherent through the Chrono::ENgine API because the * operator represents the same 'meaning' also for ChFrame, ChFrameMoving, etc. , that is, it 'concatenates' transformations in direct order (in this cases, for quaternion it concatenates rotations). Similarly, the >> operator provides a concatenation of transformations in specular order.
The % operator for quaternion product  is considered deprecated, the * operator should be used instead.
There are many places in the code where % was used, they might be promoted to * quaternion product in future.
Python support for new >> and >>= operators in quaternions.
Merge branch 'develop' of https://github.com/projectchrono/chrono into develop
Update ChLinkSpring to use ChSharedPtr to handle ChFunctions.
Fix bugs in copying ChFunction member variables
Update ChLinkEngine to use ChSharedPtr to handle ChFunctions.
Add functions to return the spring length and velocity.
Add ChLinkSpringCB, a spring-damper element based on a user-provided functor for force evaluation.
Add function to return the current deformation of a ChLinkSpringCB
New operators for doing transformations with mixed types ChFrame / ChFrameMoving. This was not possible explicitly in previous API and forced to promote a ChFrame to a ChFrameMoving by constructing it before doing the * or >> operation with a ChFrameMoving.
This is implemented now for both  * operator (right to left coord. transformation) and >> operator (left to right transformation).
Note that when doing  ChFrame * ChFrameMoving one could have the option of implementing either ChFrame  or ChFrameMoving as return type. I decided to return the type 'at the end' of the kinematic transformation, that is the right most in the * expressions and the leftmost in the >> expressions, so I decided that  ChFrame * ChFrameMoving  returns a ChFrameMoving , whereas  ChFrameMoving *  ChFrame  returns a ChFrame.  In most cases this fits the needs of the programmer and does not introduce too overhead as returning always the more complex type ChFrameMoving.
In future I'll add also mixed operators for ChCoordsys vs ChFrame  and ChFrameMoving.
Merge branch 'develop' of https://github.com/projectchrono/chrono into develop
Fixing bugs in new ChFrameMoving code - GCC compatibility and such.