Better memory management

Delete the memory as soon as the thread is finished running or as soon as
the weight file was written.

See Issue #13915
Improve Cancelling

Now whenever the computation fails for one of the weights, all the other
computation stop and the error message is reported.

See Issue #13915
EXECUTABLE_ONLY for the CLIs

So far, the CLI where used as Shared object module. A shared object module
give the advantages of reducing the reading/writing of files since they
are directly passed through slicer's API. However, there is no progress
feedback and no way of cancelling such module.
(See http://www.na-mic.org/Bug/view.php?id=2965)
That's way we switch our CLIs to EXECUTABLE_ONLY so they can be cancelled
and give feedeback.

Note: In the case of pose body, we prefer perfomance over control, this is
why it stays a shared module object.

See Issue #13915
Merge branch '13915-ImproveArmatureWeightMulti-threading' into heat-diffusion

* 13915-ImproveArmatureWeightMulti-threading:
  EXECUTABLE_ONLY for the CLIs
  Improve Cancelling
  Better memory management
Check Abort and cancel module if needed

Revert last commit and check for abort in the module itself.

See Issue #13915
Merge branch '13915-ImproveArmatureWeightMulti-threading' into heat-diffusion
Add utility functions to WeightMap

Extend WeightMap to be used with an image and not just a set of points.
Add PoseLabelmap

Closes #13941
Add python mechanism in Workflow module to observe/unobserve VTK events

Issue #13882
Don't trigger un-necessary events when setting same node

When setupMergeLabels() is being called, it is setting the same color nodes
on the qMRMLLabelComboBox which were being updated for no reason.
Issue #13882
Merge branch '1388-workflow-performance' into workflow

* 1388-workflow-performance:
  Don't trigger un-necessary events when setting same node
  Add python mechanism in Workflow module to observe/unobserve VTK events
Fix typename compilation error on gcc

When the template code is known at compilation time, there is no need for
typename.
Issue #13873
Merge branch '13873-compilation-error-on-gcc' into workflow

* 13873-compilation-error-on-gcc:
  Fix typename compilation error on gcc
Tweak Workflow module

0: Workflow generalities
* d) "Advanced workflow" checkbox should be to the left of the text (or reduce the space between the text and the checkbox)
* f) Move "Volume Render" section in 2:B) into general section
* g) When "Go To Module" is clicked, the CLI node should be updated

1: Adjust labelmap
 * a) Set automatically layout to 2x2
A) Labelmap
 * a) Add GenericColors entry as it is the default color node when loading a volume as labelmap
 * b) Automatically select the current color node at startup
B) Merge labels
 * a) Merge bones into "Bone.cancellous" instead of "Bone.MARROW"

2: Extract bones and skin
A) Bone model maker
 * a) Reset camera after bone is generated
 * b) Automatically create a model hierarchy if needed
 * d) Rename "Skeleton" into "Bones", for consistency
 * e) Add "Go to Models" pushbutton

3: Create rest armature
 * a) Add a "Load Armature" button (for now loads a mrml scene).
 * c) Add "Toggle Skin Visibility" pushbutton

4: Skinning
 * a) Remove annoying top level tooltip

Issue #13882
Merge branch '13882-workflow-tweaks' into workflow

* 13882-workflow-tweaks:
  Tweak Workflow module
Merge branch '13941-poselabelmap' into heat-diffusion

* 13941-poselabelmap:
  Add PoseLabelmap
  Add utility functions to WeightMap
Mark CLI output images as labelmaps

* The "Controls" parameter group should not be collapsed by default
* Uniformize the "Debug" flag
* Reorder the "Advanced" parameter group items
Issue #13917
RE-index the CLI orders

Because ArmatureBone has been added, it shifts all the CLI by 1
Merge branch '13917-MarkCLIVolumeAsLabels-2' into heat-diffusion

* 13917-MarkCLIVolumeAsLabels-2:
  RE-index the CLI orders
  Mark CLI output images as labelmaps
Tweak workflow module - part 2

4: Skinning
A) Segment bones
 * a) Output should be renamed into "Output body partition"
 * b) Armature should be selected by default
 * c) "Go To Armature Bones Module" goes to "Armature Weight"
 instead of "Armature Bones"
B) Armature Weights
 * a) Rename "Body partition" into "Input body partition"
 * b) "Go to Armature Weights" module should be advanced
 * e) Armature should be selected by default

See Issue #13882