Add Worklow module

Only the first page is implemented.

Issue #13882
Merge remote-tracking branch 'origin/heat-diffusion' into 13882-Workflow-JA

* origin/heat-diffusion: (23 commits)
  Parrallelized weight computation
  Use envelopes in ArmatureWeight CLI
  Transfer BonesPartition to ArmatureWeight CLI
  Delete BonePartition as an output from the bone partition segmentation
  Adapt Armature Weight CLI
  Add Armature Bone CLI
  Add unit test to ArmatureWeight
  Add progress report to ArmatureWeight
  Factorize and cleanup ArmatureWeight module
  Extract the generic heat diffusion algorithm to its own classes and add tests
  Add /bin to testing path
  Pass correct testing executable path
  Envelope radius ratio for each bone.
  Enable selection for the cylinder and the cones
  Apply change to Slicer
  Listen to armature's bone representation change and propagate
  Add radius field data to the armature polydata
  Add envelope radius slider
  Rename EnvelopeVisible to ShowEnvelope
  Make envelopes available in Slicer
  ...
Remove un-existing test directory in Modules/Scripted/Scripts

It generates a build error when building slicer with BUILD_TESTING on.
Add qMRMLNodeComboBox::NoneDisplay and qMRMLSortFilterProxyModel::visibleNodeIDs

Closes #13890
Merge branch '13890-qmrmlnodecombobox-nonedisplay-visiblenodeids' into workflow

* 13890-qmrmlnodecombobox-nonedisplay-visiblenodeids:
  Add qMRMLNodeComboBox::NoneDisplay and qMRMLSortFilterProxyModel::visibleNodeIDs
  Remove un-existing test directory in Modules/Scripted/Scripts
Add Segment bones panel

This panel will likely be completed by the Armature Weight module.
Also changed a few semantics about the armature module (names mainly).

See Issue #13882
Complete panel with armatures weights and evaluate weights

It was decided to add evalWeight with armature weight because it is the
 last step dealing with weight.
Also, changing the labels, group box title and push button action
according to slicer's standards.

See Issue #13882
Add Pose panel

See Issue #13882
Improve interface

Delete the evaluate weight CLI It is not of any use in the workflow.

Improving the Next/Previous look and feel. They actually have the title
names of the next/previous page. The title is recomputed at every page
based on the toolTip of this page. It is display in a label for now above
the CLIs.

Finally tweaking the layouts margins for a better look.
See Issue #13882
Merge branch '13882-Workflow-JA' into workflow

Conflicts:
	CMake/Superbuild/External_Slicer.cmake
	Modules/Scripted/Scripts/CMakeLists.txt
	Modules/Scripted/Scripts/Resources/UI/Workflow.ui
	Modules/Scripted/Scripts/Workflow.py
Restore apply button for color table

The color table is only applied when the button is clicked. This will
hopefully prevent misleading the user into believing that the look-up table
is already applied to the node.
Throughout the code, it is implied that if we have a volume node, it has
a display node associated.

See Issue #13882
Add Transform module

The transform module can change the data from RAS to/from IJK.
This helps to get rid of the differences between ITK and VTK.

See Issue #13882
Improve Model Maker

Automatically set the skin's opacity to 0.2.
Add a toggle button for the skin's visibility.

See Issue #13882
Very simple workflow

Add a simple worflow option

See Issue #13882
Change workflow interface

Using accessible name to store the page's title and the accessible
description to store the help.
Add help collapsible groupbox. It has a label automatically filed with
the accessible descritption field.
Adding page number to the title and the next/previous buttons.
Hiding the first/last buttons.
Reformat the tranform module to just a button

See Issue #13882
Apply buttons tweaking

Change the buttons size and run CLI on pressed() signal so the button
will still be "pressed" while the cli is running.

See Issue #13882
Add rename to output comboboxes

See Issue #13882
Drastically improve the node color change performance

The volume node is observe by the setupMergeLabel() function that is
called upon the ModifiedEvent. Without the StartModify() and EndModify(),
each time the node was modified the function was called, slowing down the
process a lot.
Now the modified event is only called one at the EndModify().

See Issue #13882
Uniform GUI

Use same casing for the labels throughout the module, following the slicer
convention.
Also Using "WordWrap" in the help label.
Finally, moving the GoTo buttons next to the apply buttons.

See Issue #13882