Add utility functions to vtkQuaternion

Issue #13983
Add vtkDualQuaternion
Apply ScLERP to interpolate dual quaternions

Issue #13983
Merge branch '13983-fix-dual-quaternion' into heat-diffusion

* 13983-fix-dual-quaternion:
  Apply ScLERP to interpolate dual quaternions
  Add vtkDualQuaternion
  Add utility functions to vtkQuaternion

Conflicts:
	Modules/CLI/PoseSurface/PoseSurface.cxx
Enhance ChangeLabel documentation

See Issue #13972
Fix downsampling/upsampling ratio.

Due to computation errors, the dimensions might not be the same.
Closes #14069
Merge branch '14069-fix-downsampling-ratio' into heat-diffusion

* 14069-fix-downsampling-ratio:
  Fix downsampling/upsampling ratio.
Enhance Compute Armature Weight documentation

At the same time, turn UseEnvelopes default to false.

See Issue #13972
Enhance EvalWeight documentation

See Issue #13972
Enhance VolumeSkinning documentation

See Issue #13972
Improve PoseSurface documentation

See Issue #13972
Improve PoseLabelmap documentation

See Issue #13972
Add Skin Model Maker scripted module

This module create a skin model contained within the given volume.
It really is a wrapper around the ChangeLabel, GrayscaleModelMaker and
ModelQuadricClusteringDecimator.
The principle is to set the volume's skin label to background and then run
the model maker, with the option to decimate it after using the decimator.

See Issue #14026
Merge branch '14026-SkinTooBig' into heat-diffusion

* 14026-SkinTooBig:
  Add Skin Model Maker scripted module
Fix miscellaneous spelling mistakes

See Issue #13972
Merge branch '13972-CLIDocumentation' into heat-diffusion

* 13972-CLIDocumentation:
  Fix miscellaneous spelling mistakes
  Improve PoseLabelmap documentation
  Improve PoseSurface documentation
  Enhance VolumeSkinning documentation
  Enhance EvalWeight documentation
  Enhance Compute Armature Weight documentation
  Enhance ChangeLabel documentation
Fix compilation error and warnings on gcc
Make weight Lerp function as a WeightMap method

The function really belongs to the WeightMap methods.
Add MaximumParenthoodDistance option to PoseLabelmap

When 2 neighboring voxels are associated to armature bones with no joint
in between (e.g. forearm and side belly), there shouldn't be any
interpolation of transforms between those voxels.
This has to happen at the weight interpolation level.

Closes #14079
Add MaximumParenthoodDistance option to PoseLSurface and EvalSurfaceWeight

When 2 neighboring voxels are associated to armature bones with no joint
in between (e.g. forearm and side belly), there shouldn't be any
interpolation of transforms between those voxels.
This has to happen at the weight interpolation level.

Closes #14079