Calculate sensible VTC parameters automatically

This change calculates sensible vtc parameters if non are provided. The
damping and stiffness values (linear and angular) are put into
OptionalValues. During wake up, they are calculated if non are provided
based on the rigid representation properties (mass and moment of
inertia). This method provides similar response of the vtc regardless of
the shape and mass of the controled object.

Also, removed setting these values in our examples, and use the
automatic calculation.
VTC's default parameters are critically damped

Now, the vtc's default parameters are set such that the vtc is
critically damped. If neither of the parameters are given (stiffness and
damping) they are both calculated to provide good critically damped
response. If one of the parameters is given, the other is calculated
such that the system is critically damped. Nothing is calculated if both
parameters are set. This is done the same way with the angular
component of the vtc.
Restore default vtc linear stiffness

Restore the default vtc linear stiffness to the original value used in
the stapling demo.
Add test of vtc default parameters, cleanup

Added unit tests of the default vtc parameters. The unit tests verify
that the default parameters provide a critically damped system by
checking the settling time and exponential behavior.

Added comments about how the default parameters are calculated, also
added comments to the setters of the parameters indicating they will
automatically be calculated if not provided.

Finally removed comments on inherited functions that already have
comments in the parent class.
Mac compile error fix: Remove static const EmptyData.
Drop old-style serialization, let Math::Shape inherits Accessible.

1. Remove old style serialization from Convert.h

2. Let Math::Shape inherits from Framework::Accessible.

3. Add an ObjectFactor in Math::Shape.

4. Separate method implementations from header.
Serialize BoxShape using new serialization style.

1. Use macro to register class name and accessors.

2. Provide 'protected' setters for serialization.

3. Coding format revision.
Serialize CapsuleShape using new serialization style.

1. Use macro to register class name and accessors.

2. Provide 'protected' setters for serialization.

3. Coding format revision.
Serialize CylinderShape using new serialization style.

1. Use macro to register class name and accessors.

2. Provide 'protected' setters for serialization.

3. Coding format revision.
Serialize ShpereShape using new serialization style.

1. Use macro to register class name and accessors.

2. Provide 'protected' setters for serialization.
Serialize PlaneShape using new serialization style.
Serialize DoubleSidedPlaneShape using new serialization style.
Serialize MeshShape using new serialization style.

1. Only the filename of external file which contains the actual mesh
   will be serialized (not implemented yet, will be in another merge
   request).

2. Check against nullptr in getters.

3. Add default constructor, to be used by ObjectFactory.

4. Register class name in the ObjectFactory by a macro.
Serialize SurfaceMeshShape using new serialization style.

1. Only the filename of external file which contains the actual mesh
   will be serialized (not implemented yet, will be in another merge
   request).

2. Check against nullptr in getters.

3. Add default constructor, to be used by ObjectFactory.

4. Register class name in the ObjectFactory by a macro.
Serialize OctreeShape using new serialization style.

1. Only the filename of external file which contains the actual octree
   will be serialized (not implemented yet, will be in another merge
   request).

2. Register class name in the ObjectFactory by a macro.

3. Drop non-const 'getRootNode()'.

4. Remove 'virtual' keyword from 'getRootNode()' and 'setRootNode()'.

5. Remove unused header <vector>.
Revise OctreeDcdContact, because of the changes in OctreeShape.
Revise unit tests for math shapes.
Merge branch 'fix/MacCompileErrorFix' into 'master'

Mac compile error fix: Remove static const EmptyData.

+1: Paul Novotny, Walter Schoen, haizhouW

Merged-on: https://www.assembla.com/code/OpenSurgSim/git/merge_requests/791013
Fix comment types in VirtualToolCouplerTest
Merge branch 'master' into feature/default-vtc-parameters

Conflicts:
	SurgSim/Physics/VirtualToolCoupler.cpp