Added new Matrix33 constructor and test functions.

Added a new ChMatrix33 constructor which builds a diagonal matrix with
same elements on the diagonal (useful to construct an identity 3x3 matrix).
Added two utility functions which test if a 3x3 matrix is the identity matrix
and if a vector is the null vector, respectively.
Declare a couple of ChMatrix33 and ChVector methods as const.

More such changes should be done.  These are the ones required for
the changes to the ChCollisionModel::Add***() function prototypes.
Clean up prototypes for the ChCollisionModel::Add***() functions.

Modified the prototypes of all functions used to specify collision
geometry so that they take const refs to the position and orientation
of the contact shapes (instead of pointers to a ChVector and ChMatrix33,
respectively).

This cleans up the code and addresses compilation warnings regarding
'taking address of temporary' (gcc) or 'class rvalue used as lvalue' (cl).
Update demos to reflect changes in ChCollisionModel::Add***() functions.

Pass position and orientation matrix for contact shapes as const refs, not
pointers.
Fix a couple of 'multiple defintion' linker warnings.

Move defintions of static functions from the header file to the source file
so that these functions are not multiply-defined.