Add Armatures module

Read and display armatures exported from Blender
Merge branch 'Armatures'

* Armatures:
  Add Armatures module
Read Blender posing
Merge branch 'Armatures'

* Armatures:
  Read Blender posing
Merge branch 'Armatures'

# By Johan Andruejol (13) and Julien Finet (7)
* Armatures:
  Propagate vtkBoneWidgets API changes
  Fix compilation of Libs/VTK
  Armature bash commit: Connecting Bone Widget with Slicer Interface.
  FIX: Fix representation:
  FIX: Fix Set*HeadAndTail methods
  ENH: Refactor vtkBoneWidget to use vtkQuaternion
  ENH: Add vtkQuaternion from VTK.
  Apply bone node hierarchy to armature widget
  BUG: Overall Armature fix.
  BUG: Fix state checking repetition
  BUG: Fix SetWidgetStateToPose/Rest() mixup
  STYLE: Bone Widget Refactoring - part 1
  ENH: Add Name attribut for vtkBoneWidget
  ENH: Bones always displayed on top.
  BUG: Change bone defaut values to (0, 0, 0) and (1, 0, 0)
  Fix bone tree view model and persistent interaction mode
  Add bone and armature MRML nodes
  Add vtkArmatureWidget - Widget that handles the bones parent relations
  Add vtkBoneWidgets, VTK widgets for bone editing and visualization
  Add Armatures module

Conflicts:
	Modules/Loadable/Armatures/CMakeLists.txt
	Modules/Loadable/Armatures/Logic/CMakeLists.txt
	Modules/Loadable/Armatures/Logic/vtkSlicerArmaturesLogic.cxx
	Modules/Loadable/Armatures/Logic/vtkSlicerArmaturesLogic.h
	Modules/Loadable/Armatures/Resources/UI/qSlicerArmaturesModule.ui
	Modules/Loadable/Armatures/Resources/qSlicerArmaturesModule.qrc
	Modules/Loadable/Armatures/Testing/Cxx/CMakeLists.txt
	Modules/Loadable/Armatures/qSlicerArmaturesIO.cxx
	Modules/Loadable/Armatures/qSlicerArmaturesModule.cxx
	Modules/Loadable/Armatures/qSlicerArmaturesModuleWidget.cxx
	Modules/Loadable/Armatures/qSlicerArmaturesModuleWidget.h
	Utilities/Blender/io_export_armature.py
Fix compilation error in vtkCylinderBoneRepresentation

On linux, file names are case sensitive.
Closes #13683
Merge branch '13683-linux-compilation-errors'

* 13683-linux-compilation-errors:
  Fix compilation error in vtkCylinderBoneRepresentation
Compute armature weight through heat diffusion
Refactoring and cleanup

- Add EvalWeight module
- Add EigenWrapper module
- Add WeightMap* to BenderCommon
Clean up based on comments from Julien
Fix interaction

Without this event, the widget was "reseting" its world position along
X, Y or Z everytime it was moved, preventing it from being correctly
moved. This prevents it.

Also adding a check when udpating the bone selection state so it's not
systematically firing modified events.

See Issue #13695
Fix MSVC compilation issue
Merge branch 'vtkBoneWidgets' into Armatures
Fix reset pose mode.

In the case where the armature is already in pose mode, we want to be in
go to rest mode before reseting.

See Issue #13697
Merge branch 'vtkBoneWidgets' into Armatures
Hide the bone axes

The axes sizing is weird. Hiding this while waiting for a fix.

See Issue #13696
Reset pose mode

Adding the gui capacities to be able to reset the pose mode easily.
See Issue #13697
Add Superbuild, download, configure and build Slicer

Issue #13632
Add BenderApp, the main application for Bender

Make the Armature module first in the list.

Issue #13632
Merge branch '13632-bender-superbuild'

* 13632-bender-superbuild:
  Add BenderApp, the main application for Bender
  Add Superbuild, download, configure and build Slicer

Conflicts:
	CMakeLists.txt
	Modules/Loadable/Armatures/qSlicerArmaturesIO.cxx